溫馨提示×

C# 使用多線程的幾種方式

c#
小云
114
2023-09-15 07:36:40
欄目: 編程語言

在C#中,有幾種方式可以使用多線程:

  1. 使用Thread類:可以創(chuàng)建一個新線程并在其中執(zhí)行指定的方法??梢允褂肨hread類來啟動和停止線程,并檢查線程的狀態(tài)。以下是一個使用Thread類的例子:
using System;
using System.Threading;
class Program
{
static void Main()
{
Thread thread = new Thread(DoWork);
thread.Start();
// 繼續(xù)執(zhí)行主線程的其他操作
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main thread: " + i);
Thread.Sleep(1000);
}
}
static void DoWork()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Worker thread: " + i);
Thread.Sleep(1000);
}
}
}
  1. 使用ThreadPool類:線程池是一個包含多個工作線程的線程集合,可以重用這些線程來執(zhí)行多個短期的任務(wù)??梢允褂肨hreadPool.QueueUserWorkItem方法將工作項添加到線程池中。以下是一個使用ThreadPool類的例子:
using System;
using System.Threading;
class Program
{
static void Main()
{
ThreadPool.QueueUserWorkItem(DoWork);
// 繼續(xù)執(zhí)行主線程的其他操作
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main thread: " + i);
Thread.Sleep(1000);
}
}
static void DoWork(object state)
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Worker thread: " + i);
Thread.Sleep(1000);
}
}
}
  1. 使用Task類:Task類是.NET Framework 4以后引入的一種用于表示異步操作的類型??梢允褂肨ask.Run方法創(chuàng)建一個新的任務(wù),并使用Task.Wait方法等待任務(wù)完成。以下是一個使用Task類的例子:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Task task = Task.Run(DoWork);
task.Wait();
// 繼續(xù)執(zhí)行主線程的其他操作
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main thread: " + i);
Task.Delay(1000).Wait();
}
}
static void DoWork()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Worker thread: " + i);
Task.Delay(1000).Wait();
}
}
}

這些是C#中使用多線程的幾種常見方式。根據(jù)實際需求,選擇適合的方式來處理多線程任務(wù)。

0