c# lambda在多線程中如何使用

c#
小樊
98
2024-06-25 23:33:45

在多線程中使用lambda表達(dá)式可以通過幾種方式實(shí)現(xiàn),其中一種常見的方式是使用Task類來創(chuàng)建并啟動(dòng)一個(gè)新的任務(wù),并在任務(wù)的構(gòu)造函數(shù)中使用lambda表達(dá)式來定義要執(zhí)行的代碼塊。以下是一個(gè)簡(jiǎn)單的示例:

using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        // 創(chuàng)建并啟動(dòng)一個(gè)新的任務(wù)
        Task task = Task.Run(() =>
        {
            // 在lambda表達(dá)式中定義要執(zhí)行的代碼塊
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine($"Task: {i}");
                Thread.Sleep(1000);
            }
        });

        // 等待任務(wù)完成
        task.Wait();

        Console.WriteLine("Main thread finished.");
    }
}

在上面的示例中,通過調(diào)用Task.Run()方法創(chuàng)建了一個(gè)新的任務(wù),并在lambda表達(dá)式中定義了任務(wù)要執(zhí)行的代碼塊。這個(gè)任務(wù)會(huì)在后臺(tái)線程中執(zhí)行,在主線程中調(diào)用Wait()方法等待任務(wù)完成后打印出"Main thread finished."。這樣就實(shí)現(xiàn)了在多線程中使用lambda表達(dá)式的功能。

0