Parallel.Invoke
private void btnParallel_Click(object sender, EventArgs e)
{
Console.WriteLine("Parallel Start");
Parallel.Invoke(() => Test1());
Console.WriteLine("Parallel End");
}
private void Test1()
{
for(int a=0;a<20;a++)
{
Console.WriteLine($"task1 Start; Thread ID:{ Thread.CurrentThread.ManagedThreadId.ToString("00")}");
}
}
private void Test2()
{
while (RunFlag)
{
Console.WriteLine($"task2 Start; Thread ID:{ Thread.CurrentThread.ManagedThreadId.ToString("00")}");
Thread.Sleep(100);
}
}
先运行Test2,然后运行Test1,结果如下:(将另外一个线程暂停,运行Invoke中的线程,运行完毕后,另一个线程继续运行)