1、语法1
using System;
using System.Threading;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var one = new Thread(ThreadOne);
one.Name = "前台线程";
one.Start(10);
one.Join();
}
private static void ThreadOne(Object i)
{
Console.WriteLine(i);
}
}
}
2、语法2:
using System;
using System.Threading;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var one = new Thread(()=> ThreadOne(10));
one.Name = "前台线程";
one.Start();
one.Join();
}
private static void ThreadOne(int i)
{
Console.WriteLine(i);
}
}
}
两者之间的区别是:一个是在Start方法专递的参数,另一个是通过lanbda方法传递的参数。
用start传递参数时,调用的方法参数的类型必须是Object类型。
使用lambda表达式引用另一个C#对象的方式被称之为闭包。当在lambda表达式中使用任何局部变量时,C#会生成一个类,并将该变量作为该类的一个属性。

221

被折叠的 条评论
为什么被折叠?



