如何在CSharp中使用Task.Run進行多線程
歡迎大家!來深入探討一下C#的多執行緒(Thread)程式的精彩世界吧。今天,我們會探討Task.Run,了解Task Factory StartNew,並運用異步(Asynchronous)任務的強大功能。
Continue...歡迎大家!來深入探討一下C#的多執行緒(Thread)程式的精彩世界吧。今天,我們會探討Task.Run,了解Task Factory StartNew,並運用異步(Asynchronous)任務的強大功能。
Continue...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...