繁体   English   中英

异步方法调用期间主线程完成?

[英]Main thread finishing during asynchronous method call?

只是想知道,在主线程不需要也不应该等待异步方法调用完成的情况下,是否有必要以编程方式创建一个新线程?

在这种情况下,将一些数据保存到数据库时会进行异步调用,但这是调用方法所做的第二件事(最后一件事是返回数据)。 所以等待似乎没有意义(特别是因为其他一些方法正在等待返回数据),但如果调用方法在调用后立即完成,则异步方法可能根本无法正确执行。

在这种情况下,最佳做法是什么? 我目前绑定到 .NET 3.5。

唯一会出现问题的情况是“调用方法”是应用程序入口点(又名Main() ),并且进程本身终止。 在这种情况下,设计您的 API 以便您可以在需要时选择等待完成 - 这可以是直接的(具有允许等待的返回 object)或间接的(提供设置ManualResetEvent或类似的回调)。

根据定义,异步方法调用已经涉及另一个线程,因此您不需要复制它(实际上不应该)。 但是,您应该确保调用任何必要的“End*” -通常通过回调。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM