Дождитесь окончания метода - PullRequest
4 голосов
/ 14 марта 2011

Как мне ждать, пока метод завершит использование C #?

Ответы [ 3 ]

52 голосов
/ 14 марта 2011

Если вы не используете несколько потоков, выполнение не будет продолжено в , вызывающем код , пока метод не завершится в любом случае.

Если вы используете несколько потоков, это действительно зависит от того, как вы запускаете задачу. Например, вы можете использовать асинхронное выполнение делегата (foo.BeginInvoke(...)) или параллельную библиотеку задач или просто создать новый поток. Каждый подход имеет свой собственный способ ожидания, пока задача / поток не завершится. Пожалуйста, дайте нам больше информации, и мы можем помочь вам больше, но варианты могут включают в себя:

  • Вызов EndInvoke делегату, передача IAsyncResult, возвращенного BeginInvoke
  • Вызов Task.Wait (опционально с таймаутом)
  • Вызов Thread.Join (опционально с таймаутом)
10 голосов
/ 14 марта 2011
  1. Вызовите метод.
  2. Дождитесь окончания.

Примечание : работает только для блокировки вызовов.

7 голосов
/ 14 марта 2011

Я предполагаю, что вы спрашиваете, как ждать выполнения кода в другом потоке в вашем основном потоке. Для этой цели метод Thread.Join () сделает то, что вы хотите.

(Хороший учебник о том, как сделать Многопоточность .)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...