キューに入れられたコールバックの順序が決定論的ではないことに気付きThreadPool.QueueUserWorkItem
ました.コールバックが渡された順序ではないことは確かです.
これは、次の簡単なプログラムで確認できます。
private static void Main()
{
for (var i = 0; i < 10; ++i)
ThreadPool.QueueUserWorkItem(Console.Write, i + " ");
Thread.Sleep(1000);
}
1 回の実行の出力は次のとおりです。
0 3 8 9 1 2 5 4 6 7
名前は、順序が保持されていることを示しています。
順序が保持されていることを確認する方法はありますか?
そうでない場合、どの代替実装を提案しますか?