gpt4 book ai didi

c# - 如何制作非阻塞等待句柄?

转载 作者:太空狗 更新时间:2023-10-30 00:39:34 28 4
gpt4 key购买 nike

基本上,我正在做的是创建一个网络服务器来处理 API 调用,然后在它完成后继续执行方法,所以基本上:

new WebServer(myAutoResetEvent);
myAutoResetEvent.WaitOne();

但是,这会阻塞线程直到那时。有没有办法使这个异步?将它包装在 await Task.Run() 调用中是否可以,即 await Task.Run(() => myAutoResetEvent.WaitOne())

谢谢!

最佳答案

通常,WebServer ctor 不应该做任何有趣的事情。应该有一个 Task WebServer.RunAsync运行服务器的功能。然后,您可以使用生成的任务来同步和协调。

如果你不想,你可以使用 TaskCompletionSource<object>作为一次性异步就绪事件。

我相信ThreadPool类有一种有效等待 WaitHandle 的方法被设置,但这是一个更糟糕的解决方案。

关于c# - 如何制作非阻塞等待句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34548740/

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