Сначала будет уничтожен провайдер, а потом консюмер. Между этими двумя действиями у консюмера будет битая ссылка на провайдер
Можно написать так:
this.registerDisposable(this.p = new Provider()); // какой-то провайдер
this.c = new Consumer(this.p); // какой-то консюмер
this.p.registerDisposable(this.c);
this.dispose();
Можно написать так: