2019年2月6日 星期三

Task 類別來處理非同步工作 task.run

https://www.huanlintalk.com/2013/06/csharp-notes-multithreading-6-tpl.html


static void Main(string[] args)
{
    // 寫法 1 - .NET 2 開始提供
    ThreadPool.QueueUserWorkItem(state => MyTask());

    // 寫法 2 - .NET 4 開始提供 Task 類別。
    var t = new Task(MyTask);   // 等同於 new Task(new Action(MyTask));
    t.Start();

    // 寫法 3 - 也可以用靜態方法直接建立並開始執行工作。
    Task.Factory.StartNew(MyTask);

    // 寫法 4 - .NET 4.5 的 Task 類別新增了靜態方法 Run。
    Task.Run(() => MyTask());

    Console.ReadLine();
}

static void MyTask()
{
    Console.WriteLine("工作執行緒 #{0}", Thread.CurrentThread.ManagedThreadId);
}


沒有留言:

張貼留言