說我有這個簡單的方法:C#:我怎樣才能使IEnumerable <T>線程安全?
public IEnumerable<uint> GetNumbers()
{
uint n = 0;
while(n < 100)
yield return n++;
}
你將如何讓這個線程安全的?我的意思是,你會得到一次枚舉,並有多個線程處理所有的數字,沒有任何人得到重複。
我想一個鎖需要在某處使用,但必須在哪裏鎖定一個迭代器塊以保證線程安全?一般來說,你需要記住,如果你想要一個線程安全IEnumerable<T>
?或者說,我猜這將是一個線程安全IEnumerator<T>
...?
(以防萬一你沒有檢查我的意見)我只是在這個博客:http://msmvps.com/blogs/jon_skeet/archive/2009/10/23/iterating-atomically.aspx – 2009-10-23 21:22:07
哦, 謝謝!當有人評論你的評論或類似的東西時,這個網站應該有Facebook的通知...嘿嘿。 – Svish 2009-10-24 11:07:02