溫馨提示×

C#中如何創(chuàng)建和管理線程

c#
小樊
85
2024-08-27 10:14:29
欄目: 編程語言

在C#中,可以使用.NET的System.Threading命名空間中的類來創(chuàng)建和管理線程

  1. 使用Thread類創(chuàng)建線程:
using System;
using System.Threading;

class Program
{
    static void Main()
    {
        // 創(chuàng)建一個新線程
        Thread newThread = new Thread(new ThreadStart(MyMethod));

        // 啟動線程
        newThread.Start();

        // 等待線程完成
        newThread.Join();

        Console.WriteLine("線程已完成");
    }

    static void MyMethod()
    {
        Console.WriteLine("這是新線程");
    }
}
  1. 使用ThreadPool類管理線程:
using System;
using System.Threading;

class Program
{
    static void Main()
    {
        // 將工作項添加到線程池隊列
        ThreadPool.QueueUserWorkItem(new WaitCallback(MyMethod));

        // 等待所有線程完成(僅適用于此示例,實(shí)際應(yīng)用中不建議使用)
        Thread.Sleep(1000);

        Console.WriteLine("所有線程已完成");
    }

    static void MyMethod(object state)
    {
        Console.WriteLine("這是線程池中的線程");
    }
}
  1. 使用Task類創(chuàng)建和管理線程(推薦方法):
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        // 創(chuàng)建一個新任務(wù)
        Task task = Task.Run(() => MyMethod());

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

        Console.WriteLine("任務(wù)已完成");
    }

    static void MyMethod()
    {
        Console.WriteLine("這是任務(wù)中的線程");
    }
}

使用Task類是最推薦的方法,因?yàn)樗峁┝烁呒壍墓δ埽绠惒骄幊?、任?wù)組合和取消支持。同時,Task類也會自動利用線程池,從而提高性能。

0