gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:03:42 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

关于c# - 异步方法调用期间主线程完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7010816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com