.NET 多線程:精通 CSharp 並行編程
線程基礎 (Threading Basics)
在本章中,我們將介紹在 CSharp 中進行線程操作的基本任務。您將學習到以下內容:
- 在 CSharp 中創建一個線程
- 暫停一個線程
- 使一個線程等待
- 終止一個線程
- 確定線程狀態
- 線程優先級
- 前景和背景線程
- 向線程傳遞參數
- 使用 CSharp lock 關鍵字鎖定
- 使用 Monitor 結構鎖定
- 處理異常
在本章中,我們將介紹在 CSharp 中進行線程操作的基本任務。您將學習到以下內容:
int[] nums = Enumerable.Range(0, 100).ToArray();
Parallel.For(0, nums.Length, i =>
{
// 這裡的程式會並行執行
nums[i] = nums[i] * nums[i];
});
public async Task<int> CalculateResultAsync()
{
// 啟動一個新的任務
var task = Task.Run(() =>
{
int sum = 0;
for (int i = 0; i < 1000; i++)
{
sum += i;
}
return sum;
});
// 等待任務完成並返回結果
return await task;
}
void ThreadMethod()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("ThreadProc: {0}", i);
// 使線程睡眠一秒
Thread.Sleep(1000);
}
}
Thread t = new Thread(new ThreadStart(ThreadMethod));
// 啟動線程
t.Start();
在選擇這些技術時,重要的是要了解您的應用程式的需求和限制,以選擇最適合您場景的方法。例如,對於計算密集型任務,Parallel 和多線程可能更有效,而對於 I/O 繫結或需要非同步操作的任務,Task 則可能是更好的選擇。
Continue...