我想有一个方法,我可以在其中传递另一个方法(不带任何参数)。
在该方法中,将有一个线程来调用传递的方法。
不太确定如何实施,但是整个想法是这样的:
private static void Main(string[] args)
{
MethodStarter(Greet)
}
void MethodStarter(Method method)
{
ThreadStart starter = method;
_thread = new Thread(starter) { IsBackground = true };
_thread.Start();
}
void Greet()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(SendAMessage), "Hello World");
Thread.Sleep(5000);
ThreadPool.QueueUserWorkItem(new WaitCallback(SendAMessage), "How are you today?");
Thread.Sleep(5000);
}
void SendAMessage(object arg)
{
Console.WriteLine(arg as string);
}
答案 0 :(得分:4)
实际上,您已经回答了问题中的问题。看这一行:
ThreadStart starter = method;
您正在将method
分配给类型为ThreadStart
的变量,因此,method
自然也应为类型ThreadStart
:
void MethodStarter(ThreadStart method)
{
// you don't actually need this line, just pass "method" directly
// ThreadStart starter = method;
_thread = new Thread(method) { IsBackground = true };
_thread.Start();
}