我想编写一个辅助函数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();
}
}