在C#中,可以使用Task類來創建并執行線程。在for循環中創建線程時,可以使用Task.Run方法來創建線程,并使用Wait方法等待線程執行完成。
以下是一個示例代碼:
using System;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
int index = i; // 為了避免變量共享問題,將循環變量賦值給一個局部變量
Task.Run(() => DoSomething(index)); // 創建并執行線程
}
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
static void DoSomething(int index)
{
// 線程執行的邏輯
Console.WriteLine($"Thread {index} is running.");
// ...
}
}
在上述示例中,使用Task.Run方法創建并執行了10個線程。為了避免循環變量index的共享問題,將其賦值給一個局部變量。每個線程執行DoSomething方法,打印線程的索引。
需要注意的是,線程的執行順序是不確定的,可能會出現亂序執行的情況。如果需要保持線程的順序,可以使用Task.WaitAll方法來等待所有線程執行完成。