我需要调用第 3 方代码,该代码可选地启动一个新线程,执行一些处理,然后在我的对象上调用不同的方法。我需要的是等待第 3 方处理完成,然后从原始方法返回。换句话说,我有一个这样的类(C#):
class MyClass: IThirdPartyInterface {
void MyMethod() {
//some preprocessing
//call a 3rd party static method
ThirdParty.DoSomething(this);
}
void FinishedProcessing() {
//some postprocessing
//???
}
}
我想修改 MyMethod 使其仅在 DoSomething 中启动的线程完成执行并调用 FinishedProcessing 方法后才返回。由于线程是由第三方代码启动的,我无权访问,所以这里不能使用 Thread.Join。那么,我该怎么做呢?