91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
雷山县| 卓尼县| 兰溪市| 垣曲县| 渝中区| 东山县| 灵武市| 铜陵市| 日照市| 寿光市| 镇巴县| 三都| 武功县| 华宁县| 阿勒泰市| 台东市| 景泰县| 上思县| 禹州市| 麦盖提县| 迁西县| 姚安县| 延寿县| 米林县| 崇仁县| 江安县| 新巴尔虎右旗| 西藏| 淮南市| 临武县| 龙陵县| 河西区| 诏安县| 广饶县| 监利县| 常德市| 周宁县| 红安县| 九江市| 乌拉特中旗| 界首市|