¿Cómo puedo esperar a que un método termine de usar C#?Espere a que el método finalice
Respuesta
A menos que esté utilizando varios subprocesos, la ejecución no continuará en el llamando al código hasta que el método se haya completado de todos modos.
Si son usando varios hilos, realmente depende de cómo inicie la tarea. Por ejemplo, podría estar utilizando la ejecución de delegado asíncrono (foo.BeginInvoke(...)
) o la Biblioteca de tareas paralelas, o simplemente creando un nuevo hilo. Cada enfoque tiene su propia forma de esperar hasta que la tarea/hilo se haya completado. Por favor nos da más información y podemos ayudar más, pero las opciones pueden incluir:
- Calling
EndInvoke
en el delegado, pasando elIAsyncResult
devuelto porBeginInvoke
- Calling
Task.Wait
(opcionalmente con un tiempo de espera) - Calling
Thread.Join
(opcionalmente con un tiempo de espera)
+1 para una respuesta sensata, Jon Skeet no vomite ninguna mierda. – mdm
+1 Seguro .. @mdm por eso tenemos [Jon Skeet] (http://blog.stackoverflow.com/2008/11/stack-overflow-is-you) aquí –
+1 por proporcionar realmente opciones en el caso de código multiproceso –
- Llame al método.
- Espere a que termine.
Nota: Solo funciona para bloquear llamadas.
Gran algoritmo .../yo aplausos PD: olvidaste '3. GANANCIA !!! ' – zerkms
asumo que está pidiendo cómo esperar para un código que se ejecuta en otro Thr ead en su hilo principal. Para ese propósito, el método Thread.Join() hará lo que usted desee.
(Un buen tutorial sobre cómo hacer Multithreading.)
Sé que publicaste esto hace meses, pero ese enlace al tutorial acaba de salvarme la vida. No puedo agradecerle lo suficiente por compartir ese enlace. – JClaspill
@JClaspill Me alegra que te haya ayudado :) –
- 1. Espere a que el método jquery .html finalice la representación
- 2. Espere a que el código finalice la ejecución
- 3. Inicio del proceso asincrónico y espere a que finalice
- 4. Espere a que finalice la llamada AJAX (POST)
- 5. Java, no espere a que finalice un subproceso
- 6. Ejecute una aplicación con PowerShell y espere hasta que finalice
- 7. ¿Cómo hago que jQuery espere a que finalice una llamada Ajax antes de que vuelva?
- 8. Cómo esperar a que finalice el comando del sistema
- 9. Espere a que SwingWorker termine
- 10. Espere a que TinyMCE cargue
- 11. Espere a que [NSAlert beginSheetModalForWindow: ...];
- 12. Espere a que QueueUserWorkItem complete
- 13. Espere a que se libere el archivo mediante el proceso
- 14. Espere a que se completen los subprocesos
- 15. espere a que se conecte gdb
- 16. ¿Cómo decirle a .hover() que espere?
- 17. Cómo esperar a que un proceso finalice C++
- 18. Espere a que tomcat termine de iniciar
- 19. Android cómo esperar a que el código finalice antes de continuar
- 20. Java Class - No espere a que el proceso para salir
- 21. ¿Cómo esperar a que finalice una transición en javafx 2.1?
- 22. Espere hasta que QWidget cierre
- 23. Java: espere el proceso de ejecución hasta que salga
- 24. Impedir que IIS elimine una tarea antes de que finalice
- 25. Watir-Webdriver Espere a que descargue la descarga
- 26. ¿Cómo decirle a PowerShell que espere a que termine cada comando antes de comenzar el siguiente?
- 27. Ejecutar el código después de que finalice la animación
- 28. DTE.ExecuteCommand y espere
- 29. Espere a que termine un subproceso desconectado en C++
- 30. ¿Cómo hago para que un subproceso espere a que JFrame se cierre en Java?
Podría explicar un poco mejor lo que estamos tratando de lograr, por favor? – FarligOpptreden
Si su aplicación no es multiproceso y el método que llamó no es asincrónico, se llamará a su siguiente fragmento de código después de que el método regrese. Necesitamos más información para trabajar aquí, ¿está utilizando hilos o métodos 'Begin ..()'? – Kevin
¿Debemos suponer que estás hablando de una llamada a un método asincrónico? –