Рекурсивно сортировать несмежный список в список непрерывных списков

В синхронном мире C # делает управление всем одноразовым действительно довольно простым:

using(IDisposable someDisposable=bla.bla())
{
     //do our bidding
}
//don't worry too much about it

Однако, когда мы переходим в асинхронный режим, у нас больше нет удобства с использованием блока . Одна из лучших стратегий, с которыми я столкнулся, - это итератор CCR , который позволяет нам использовать асинхронный код «как если бы он был синхронным». Это означает, что мы можем сохранить наш блок using в обработчике итератора и не слишком увязнуть в сложном решении о том, когда удалять и перехватить все случаи, когда требуется удаление.

Однако во многих случаях , вызов CCR может показаться излишним, и, честно говоря, хотя мне вполне комфортно с CCR, для непосвященных это может показаться двойным голландским.

Итак, мой вопрос: какие еще стратегии существуют для управления IDisposable, когда одноразовые объекты должны сохраняться за пределами непосредственной области действия?

12
задан spender 18 February 2011 в 00:16
поделиться