ThreadPool.QueueUserWorkItem

ThreadPool.QueueUserWorkItemの2番目の引数には、実行するThreadFuncに渡すためのパラメータを指定できる・・・。

ThreadPool.QueueUserWorkItem メソッド (WaitCallback, Object) (System.Threading)

ワークアイテムに番号を振る・・・。

こんな感じで、1~3をパラメータとして渡す・・・。

指定したパラメータはobject型stateとして渡されるので、intに戻してこれも"["と"]"で括って出力してあげる・・・。

Main(1)
ThreadFunc[1](1)
Main(2)
ThreadFunc[1](2)
ThreadFunc[2](1)
Main(3)
ThreadFunc[1](3)
ThreadFunc[2](2)
Main(4)
ThreadFunc[1](4)
ThreadFunc[2](3)
Main(5)
ThreadFunc[1](5)
ThreadFunc[3](1)
ThreadFunc[2](4)
ThreadFunc[3](2)
ThreadFunc[2](5)
ThreadFunc[3](3)
ThreadFunc[3](4)
ThreadFunc[3](5)
続行するには何かキーを押してください . . .

これでどのワークアイテムかわかりやすくなった・・・。

Sample/dotnet/ThreadPool/QueueUserWorkItem/src/ThreadPool_ at master · bg1bgst333/Sample · GitHub