摘要:Task的四種初始化
依據Apress於2010年出版的《Pro .NET 4 Parallel Programming in C#》[1]p5的figure1-1的內容顯示Task有四種初始化方式如下:
第一、使用Action委派(delegate)一個具名方法(printMessage)
Task task1 = new Task(new Action(printMessage));
第二、使用暱名委派
Task task2 = new Task(delegate { printMessage(); });
第三、使用lambda expression與具名方法
Task task3 = new Task(()=>printMessage());
第四、使用lambda expression與匿名方法
Task task4 = new Task(()=>{
printMessage();
});
但是實際上,前述第三種與第四種方式都是匿名方法,因為方法的名稱僅保留(),並且在方法的名稱與內容之間使用=>區隔,倘若方法的內容僅有一行程式碼(expression lambdas),則省略{}、return與; ,倘若方法的內容有超過一行的程式碼(statement lambdas),則省略return。[2]
參考資料來源:
[1]Pro .NET 4 Parallel Programming in C#
http://www.amazon.com/NET-Parallel-Programming-Experts-Voice-ebook/dp/B0041N3GQM
[2]Lambda Expressions (C# Programming Guide)
http://msdn.microsoft.com/en-us/library/bb397687.aspx