Если вы используете новую тему, вы можете просто позвонить Thread.Join
:
Thread.Join(otherThread);
... возможно с таймаутом.
InВ .NET 4 вы можете использовать параллельную библиотеку задач (создавая Task
или Task<TResult>
), а затем вызывать Wait
.(Если вы используете .NET 4, TPL определенно является подходящим способом - вы можете сделать с ним лотов .)
Оба эти подхода блокирование - они будут мешать ожидающему потоку делать что-либо еще, пока другая задача не будет завершена;это не то, что вы хотите сделать в потоке пользовательского интерфейса.Так что , если это в контексте пользовательского интерфейса, было бы лучше использовать обратный вызов вместо этого - сделать вызов другой задачи обратно в поток пользовательского интерфейса, когда это будет сделано;это может запустить следующий фрагмент кода.
РЕДАКТИРОВАТЬ: код, который вы показали, создает новый процесс , а не новый поток .Вы можете также делать это в новой ветке, но вы этого не показали.Также все еще неясно, происходит ли все это в пользовательском интерфейсе, таком как Windows Forms или WPF, или это просто консольное приложение.