ThreadPoolクラス

ThreadPoolクラスは静的クラスであり、インスタンス化できません。

メソッド

QueueUserWorkItem()

スレッドプールにキューを置くには、QueueUserWorkItem()メソッドを使用します。

public static bool QueueUserWorkItem(
    WaitCallback callBack,   // 実行するメソッド
    Object state             // メソッドへ渡すデータ
)
ThreadPool.QueueUserWorkItem メソッド (System.Threading) | MSDN

callback引数で渡したメソッドは、スレッドプールのスレッドが使用可能になったときに実行されます。stateを省略したときは、nullが渡されます。

スレッドで実行するメソッドはWaitCallbackデリゲート型である必要があり、次の形式となります。

delegate void WaitCallback( Object state )
WaitCallback デリゲート (System.Threading) | MSDN

サンプルコード

void Main()
{
    System.Threading.ThreadPool.QueueUserWorkItem( Method, 123 );
}

void Method( Object state )
{
    // このメソッドが制御を戻すと、スレッドはスレッドプールに戻り次のタスクを待つ
}

このコードは匿名メソッドを用いることで、

System.Threading.ThreadPool.QueueUserWorkItem(delegate( Object state )
{
    // 別スレッドでの処理
}, 123 );

のようにも、ラムダ式を用いることで

System.Threading.ThreadPool.QueueUserWorkItem((state) =>
{
    // 別スレッドでの処理
}, 123 );

のようにも記述できます。

Microsoft Learnから検索