这些函数调用之间是否存在任何功能差异.
方法一:
public static void PrintMe(object obj) { Task task = new Task(() => { Console.WriteLine(obj.ToString()); }); task.Start(); }
方法2:
public static void PrintMe(object obj) { Task task = new Task((object arg) => { Console.WriteLine(arg.ToString()); },obj); task.Start(); }
解决方法
第一个将变量obj传递给任务.第二个传递obj的值.
要查看差异,请在创建任务后将其他内容分配给obj.
public static void PrintMe(object obj) { Task task = new Task(() => { Console.WriteLine(obj.ToString()); }); obj = "Surprise"; task.Start(); }