【发布时间】:2011-06-13 02:44:40
【问题描述】:
我有这样的 C# 类:
public MyClass
{
public void Start() { ... }
public void Method_01() { ... }
public void Method_02() { ... }
public void Method_03() { ... }
}
当我调用“Start()”方法时,一个外部类开始工作并将创建许多并行线程,这些并行线程调用类上方的“Method_01()”和“Method_02()”形式。外部类工作结束后,“Method_03()”将在另一个并行线程中运行。
“Method_01()”或“Method_02()”的线程是在Method_03()的线程创建之前创建的,但不能保证在“Method_03()”的线程开始之前结束。我的意思是“Method_01()”或“Method_02()”将失去它们的 CPU 轮次,而“Method_03”将获得 CPU 轮次并完全结束。
在“Start()”方法中,我知道应该创建和运行“Method_01”和“Method_02()”的线程总数。问题是我正在寻找一种使用信号量或互斥锁的方法,以确保“Method_03()”的第一条语句将在运行“Method_01()”或“Method_02()”的所有线程结束后准确运行.
【问题讨论】:
标签: c# multithreading synchronization semaphore