等待方法完成
除非您使用多个线程,否则执行将不会继续在调用代码的中,直到方法完成。
如果你是使用多线程,它真的取决于你如何启动任务。例如,您可以使用异步委托执行(foo.BeginInvoke(...)
)或任务并行库,或者简单地创建一个新线程。每种方法都有自己的等待,直到任务/线程完成。请给我们更多的信息,我们可以帮你多,但选择可以包括:
- delegate上
EndInvoke
,传递由BeginInvoke
- 调用
Task.Wait
(任选超时)返回IAsyncResult
- 调用
Thread.Join
(任选超时)
+1一个明智的答案,乔恩Skeet不喷出任何废话。 – mdm 2011-03-14 10:01:56
+1当然.. @mdm这就是为什么我们有[Jon Skeet](http://blog.stackoverflow.com/2008/11/stack-overflow-is-you)在这里 – 2011-03-14 10:10:23
为实际提供选项的情况下+1多线程代码。 – 2011-03-14 10:10:29
我以为你是问如何等待另一个苏氨酸执行代码在你的主线程中。为此目的,Thread.Join()方法将做你想要的。
(一个很好的教程就如何做到Multithreading。)
我知道你在几个月前发布了,但是这个教程的链接只是挽救了我的生活。我无法感谢您分享该链接。 – JClaspill 2011-10-28 16:14:45
@JClaspill我很高兴它帮助你:) – 2011-10-28 17:48:07
你能解释一下好一点你想实现什么,请? – FarligOpptreden 2011-03-14 09:58:41
如果您的应用程序不是多线程的,并且您调用的方法不是异步,则在方法返回后将调用下一段代码。我们在这里需要更多的信息来处理,你使用线程还是'Begin ..()'方法? – Kevin 2011-03-14 10:01:30
我们必须假设您正在讨论异步方法调用吗? – 2011-03-14 10:02:16