1

我有一个带有生成异步方法的 Web 服务引用代理类。我使用 BeginMethodName 调用方法。我可以传递一个回调函数,然后在回调函数中调用 EndMethodName 来获取结果或异常。但是如果我不调用 EndMethodName,并行线程会发生什么?我尝试使用调试器监视应用程序,看起来这些线程以任何方式被杀死。但这可能是由于他们的主线程被杀死了。但是如果主线程不会被杀死怎么办?那些并行代理线程会被一些超时杀死吗?我不需要知道方法调用的结果,方法调用无论如何都是OneWay。

4

1 回答 1

1

当一个线程完成执行时,它会自行关闭。

“一旦启动线程,就不必保留对 Thread 对象的引用。线程继续执行,直到线程过程完成。” - MSDN

此外,如果它是后台线程,那么只要主线程被杀死,它就会突然关闭。如果它是前台线程,则应用程序将等到前台线程完成后再关闭。

默认情况下,线程是前台。如果要确保在主线程被杀死时线程关闭,请设置 IsBackground 属性 = true。

于 2013-06-07T13:48:17.350 回答