Предположим, у меня есть метод void SomeMethod (Action callback) Этот метод выполняет некоторую работу в фоновом потоке, а затем вызывает обратный вызов. Вопрос в том, как заблокировать текущий поток до вызова callback?.NET Threading: Как подождать, пока другой поток не завершит какую-либо задачу
Существует пример
bool finished = false;
SomeMethod(delegate{
finished = true;
});
while(!finished)
Thread.Sleep();
Но я уверен, что там должен быть лучший способ
Если вы собираетесь блокировать текущий поток до тех пор, работа на фоновом потоке не будет завершена, вы могли бы просто сделать работу на текущем потоке вместо этого? –
Нет, к сожалению, я не могу выполнять работу в текущей теме. –
Вы рассмотрели возможность ввода кода после ожидания внутри потока или использования обратного вызова/события? То, что вы описываете, является синхронной операцией. Может быть, больше информации? –