如果我编写如下所示的代码,如何将 Method2 传递给线程,如下所示,它显示错误 Error
'System.Threading.Thread.Thread(System.Threading.ThreadStart)' 的最佳重载方法匹配有一些无效参数
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Main Thread : ");
Thread obj = new Thread(Method2);
obj.Start();
Console.ReadLine();
}
private static int Method2(int a)
{
return a;
}
}
当我使用以下代码时,它可以工作
Thread obj = new Thread(() => Method2(1));
但是为什么当我传递委托对象时它不起作用
delegate int del(int i);
del d = Method2;
Thread obj = new Thread(d);
上面 2 有什么区别,在第一种情况下,我在第二种情况下使用 Lambda 表达式直接传递委托对象还有什么别的吗?