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();
});
}
}