如何在下面的方法中创建与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();
});
}
}