プール スレッドを開始するヘルパー関数を書きたいのですが、同じプール スレッドでstart
実際のバックグラウンド処理が開始される前にいくつかのコードも追加します。そのため、バックグラウンド スレッドは追加の作業を行う必要があります。私は非常に頻繁に呼び出し、追加のコードは変更される可能性があります。だから私はプールスレッドのためのちょっとした工場を作りたいと思っていました。start
それは可能でしょうか?はいの場合、コードをスレッドに「注入」するにはどうすればよいですか?
私はこれを試しました:
class Program
{
private static void test()
{
Console.WriteLine("hello world");
}
private static void start1(Action param1)
{
ThreadPool.QueueUserWorkItem(o =>
{
// extra work is here
param1.Invoke(); // starts another subthread ?
});
}
private static void start2(WaitCallback param1)
{
ThreadPool.QueueUserWorkItem(param1);
}
static void Main(string[] args)
{
start1(new Action(test));
start2(o => { test(); });
Console.ReadKey();
}
}