ThreadPoolクラスは静的クラスであり、インスタンス化できません。
スレッドプールにキューを置くには、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 );
のようにも記述できます。