在异步方法调用期间主线程结束

本文关键字:线程 结束 异步方法 调用 | 更新日期: 2023-09-27 18:05:21

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

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

在这种情况下,什么是最佳实践?我现在被绑定到。net 3.5。

在异步方法调用期间主线程结束

如果"调用方法"是应用程序入口点(也称为Main()),并且进程本身终止,那么这将是一个问题。在这种情况下,设计你的API,使可以选择等待完成,如果你需要——这可以是直接的(有一个允许等待的返回对象),或间接的(提供一个设置ManualResetEvent或类似的回调)。根据定义,异步方法调用已经涉及到另一个线程,因此您不需要重复它(实际上也不应该重复)。然而,您应该确保任何必要的"End*" 都被调用——通常是通过回调。