اصول برنامه نویسی موازی درNET. نسخه 4 بخش اول - 2
نویسنده: احمد مقدس خو
تاریخ: ۱۳۹۱/۰۴/۰۱ ۱:۱۹
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
System.Action<object>
namespace Listing_03 {
class Listing_03 {
static void Main(string[] args) {
// use an Action delegate and a named method
Task task1 = new Task(new Action<object>(printMessage),"First task");
// use an anonymous delegate
Task task2 = new Task(delegate (object obj) {
printMessage(obj);
}, "Second Task");
// use a lambda expression and a named method
// note that parameters to a lambda don't need
// to be quoted if there is only one parameter
Task task3 = new Task((obj) => printMessage(obj), "Third task");
// use a lambda expression and an anonymous method
Task task4 = new Task((obj) => {
printMessage(obj);
}, "Fourth task");
task1.Start();
task2.Start();
task3.Start();
task4.Start();
// wait for input before exiting
Console.WriteLine("Main method complete. Press enter to finish.");
Console.ReadLine();
}
static void printMessage(object message) {
Console.WriteLine("Message: {0}", message);
}
}
}
using System;
using System.Threading.Tasks;
namespace Listing_04 {
class Listing_04 {
static void Main(string[] args) {
string[] messages = { "First task", "Second task",
"Third task", "Fourth task" };
foreach (string msg in messages) {
Task myTask = new Task(obj => printMessage((string)obj), msg);
myTask.Start();
}
// wait for input before exiting
Console.WriteLine("Main method complete. Press enter to finish.");
Console.ReadLine();
}
static void printMessage(string message) {
Console.WriteLine("Message: {0}", message);
}
}
}
Main method complete. Press enter to finish. Message: Second task Message: Fourth task Message: First task Message: Third task
Console.WriteLine("Main method complete. Press enter to finish.");