在同步世界,C#,使一切事物的管理一次性真的相當容易:故障安全處置異步世界
using(IDisposable someDisposable=bla.bla())
{
//do our bidding
}
//don't worry too much about it
然而,當我們去異步,我們不再有using
塊的便利。我遇到的最佳策略之一是CCR iterator,它允許我們使用異步代碼「就好像它是同步的」。這意味着我們可以將我們的using
塊保留在迭代器處理程序中,並且不會陷入複雜的決定何時處置和捕獲所有需要處理的情況。
然而,在很多情況下,調用CCR看起來像是過度殺傷了,老實說,雖然我對CCR很滿意,但對於外行來說,它可以看起來像是雙重荷蘭人。
所以我的問題是:什麼其他策略存在的一個人的IDisposable的管理,當一次性對象必須堅持超越直接範圍?
好問題。我只發佈這條評論,所以我可以再次找到它。 – MusiGenesis 2011-02-18 00:15:25
@MusiGenesis:「最喜歡」這個問題讓它容易找到更合理嗎? – Gabe 2011-02-18 01:59:06