如何在下面的方法中创建与do
-while
或类似的并行等效项Update()
?
应用程序中的另一个线程随机写入TestBuffer
。TestBuffer.RemoveItemAndDoSomethingWithIt();
应该运行直到TestBuffer
为空。目前Update()
仅使用枚举时集合中的项目运行,这是有道理的。
internal class UnOrderedBuffer<T> where T : class
{
ConcurrentBag<T> GenericBag = new ConcurrentBag<T>();
}
internal class Tester
{
private UnOrderedBuffer<Data> TestBuffer;
public void Update()
{
Parallel.ForEach(TestBuffer, Item =>
{
TestBuffer.RemoveItemAndDoSomethingWithIt();
});
}
}