在下面的Update()方法中,我如何獲得代碼的並行等價操作。do()while while {}}的等價
應用中的另一個線程隨機寫入Testbuffer。應該運行TestBuffer.RemoveItemAndDoSomethingWithIt();
,直到Testbuffer爲空。當前Update()
只與列舉枚舉集合時的項目一起運行。這是有道理的......
namespace Test
{
internal class UnOrderedBuffer<T> where T : class
{
ConcurrentBag<T> GenericBag = new ConcurrentBag<T>();
}
}
namespace Test
{
internal class Tester
{
private UnOrderedBuffer<Data> TestBuffer;
public void Update()
{
Parallel.ForEach(TestBuffer, Item =>
{
TestBuffer.RemoveItemAndDoSomethingWithIt();
});
}
}
}
你是什麼用意?你想要多線程來處理TestBuffer,還是想在後臺線程中異步處理TestBuffer? –
使用可用內核儘快清空TestBuffer。 – Canacourse