Вы можете попробовать следующее, это может не сработать для вашего сценария: я не могу сказать, учитывая количество предоставленных вами деталей:
Сначала создайте делегата:
public delegate int MyThreadSignature(Something arg);
Затем используйте шаблон Begin / End Invoke:
var thread = new MyThreadSignature(WorkerMethod);
thread.BeginInvoke(theArg,
MyThreadEnded, /*Method to call when done*/,
thread /*AsyncState*/);
Создайте метод MyThreadEnded:
void MyThreadEnded(IAsyncResult result)
{
var thread = (MyThreadSignature)result.AsyncState;
var result = thread.EndInvoke(result);
// Call your next worker here.
}
Метод для вызова ДОЛЖЕН иметь подпись в примере: Имя (результат IAsyncResult).