Должна ли подпрограмма, вызываемая функцией, завершаться для продолжения функции? - PullRequest
0 голосов
/ 05 июня 2011

Если подпрограмма вызывается внутри функции, всегда ли функция ждет, пока эта подпрограмма полностью завершится, прежде чем она продолжит выполнение остальной части функции? Если так, есть ли способ заставить его не ждать и продолжить работу с остальной частью функции, и не заботиться о том, что происходит в подпрограмме?

Ответы [ 3 ]

2 голосов
/ 05 июня 2011

Короткий ответ - «асинхронный вызов метода», что приводит к очень широкому вопросу «как запустить метод асинхронно». И ответ зависит от требований.

Возможно, вы захотите начать отсюда: Шаблоны проектирования асинхронного программирования .

1 голос
/ 05 июня 2011

Да, вы должны асинхронно вызывать подпрограмму с помощью BeginInvoke. Проверьте эту статью: http://msdn.microsoft.com/en-us/library/2e08f6yc(v=VS.100).aspx

1 голос
/ 05 июня 2011

В обычном порядке, да, звонки синхронны. То есть, когда вы выполняете вызов подпрограммы из функции, подпрограмма будет полностью выполнена и только после ее завершения возобновится выполнение в вызывающей функции.

Вам нужно использовать асинхронное программирование для достижения того, чего вы хотите.

Подробнее см. Асинхронный вызов синхронных методов в MSDN.

...