中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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

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

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

  1. 使用Thread類:可以創建一個新線程并在其中執行指定的方法。可以使用Thread類來啟動和停止線程,并檢查線程的狀態。以下是一個使用Thread類的例子:
using System;
using System.Threading;
class Program
{
static void Main()
{
Thread thread = new Thread(DoWork);
thread.Start();
// 繼續執行主線程的其他操作
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類:線程池是一個包含多個工作線程的線程集合,可以重用這些線程來執行多個短期的任務。可以使用ThreadPool.QueueUserWorkItem方法將工作項添加到線程池中。以下是一個使用ThreadPool類的例子:
using System;
using System.Threading;
class Program
{
static void Main()
{
ThreadPool.QueueUserWorkItem(DoWork);
// 繼續執行主線程的其他操作
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以后引入的一種用于表示異步操作的類型。可以使用Task.Run方法創建一個新的任務,并使用Task.Wait方法等待任務完成。以下是一個使用Task類的例子:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Task task = Task.Run(DoWork);
task.Wait();
// 繼續執行主線程的其他操作
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#中使用多線程的幾種常見方式。根據實際需求,選擇適合的方式來處理多線程任務。

0
平乐县| 孟津县| 丰顺县| 年辖:市辖区| 江阴市| 临漳县| 湄潭县| 虎林市| 理塘县| 长岭县| 六枝特区| 海宁市| 巴南区| 左贡县| 饶阳县| 海阳市| 田林县| 澄江县| 青铜峡市| 游戏| 隆林| 平乡县| 中西区| 阳曲县| 白山市| 临漳县| 日喀则市| 城固县| 菏泽市| 扶余县| 徐水县| 丽江市| 栾川县| 环江| 习水县| 荣昌县| 增城市| 乌审旗| 花垣县| 林西县| 钟祥市|