溫馨提示×

c# script怎樣處理多線程操作

c#
小樊
81
2024-09-28 05:46:02
欄目: 編程語言

在C#中,可以使用System.Threading命名空間中的類來處理多線程操作。以下是一個簡單的示例,展示了如何使用多線程來執(zhí)行兩個任務:

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        // 創(chuàng)建一個Thread對象,表示一個新線程
        Thread thread1 = new Thread(new ThreadStart(Task1));
        Thread thread2 = new Thread(new ThreadStart(Task2));

        // 開始新線程
        thread1.Start();
        thread2.Start();

        // 等待線程執(zhí)行完成
        thread1.Join();
        thread2.Join();

        Console.WriteLine("所有線程執(zhí)行完畢");
    }

    static void Task1()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("線程1: " + i);
            Thread.Sleep(1000); // 模擬耗時操作
        }
    }

    static void Task2()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("線程2: " + i);
            Thread.Sleep(1000); // 模擬耗時操作
        }
    }
}

在這個示例中,我們創(chuàng)建了兩個新線程thread1thread2,分別執(zhí)行Task1Task2方法。Task1Task2方法使用for循環(huán)輸出一些文本并模擬耗時操作。通過調用Start()方法,我們啟動了這兩個線程。Join()方法用于等待線程執(zhí)行完成。

除了使用Thread類外,還可以使用Task類來處理多線程操作。Task類是System.Threading.Tasks命名空間中的類,它提供了更高級的線程管理功能。以下是使用Task類的示例:

using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        // 創(chuàng)建兩個Task對象,表示兩個異步任務
        Task task1 = Task.Run(Task1);
        Task task2 = Task.Run(Task2);

        // 等待任務執(zhí)行完成
        Task.WaitAll(task1, task2);

        Console.WriteLine("所有任務執(zhí)行完畢");
    }

    static void Task1()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("線程1: " + i);
            Thread.Sleep(1000); // 模擬耗時操作
        }
    }

    static void Task2()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("線程2: " + i);
            Thread.Sleep(1000); // 模擬耗時操作
        }
    }
}

在這個示例中,我們使用Task.Run()方法創(chuàng)建了兩個異步任務task1task2,分別執(zhí)行Task1Task2方法。Task.WaitAll()方法用于等待所有任務執(zhí)行完成。

0