gpt4 book ai didi

c# - 非阻塞线程

转载 作者:太空宇宙 更新时间:2023-11-03 20:13:18 25 4
gpt4 key购买 nike

我正在重构一个由多个全尺寸应用程序使用的 C# 项目。该类与硬件进行交互,执行某些命令通常需要数百毫秒或更长时间。在许多情况下,我用 ThreadPool 调用替换了之前程序员编写的 Thread.Wait() 调用以执行这些操作。

现在,该项目为使用它的几个项目提供的一些功能需要数百毫秒或更长时间来执行,向程序必须使用的调用程序返回一个值。我的问题是我是否可以在这个项目中使用某种机制来使这些调用在主线程以外的某个线程上执行并返回?换句话说,我想从这个项目的角度让这些方法成为非阻塞的,而不是要求其他使用这些函数的应用程序将调用放在一个单独的线程中。

谢谢

最佳答案

In other words, I want to make these methods non-blocking from the perspective of this project, rather than require other applications using these functions to place calls in a separate thread.

一般来说,最好的方法通常是返回一个 Task<T>在这种情况下。这允许调用者在必要时阻止,或使用新的 awaitasync与您的库协调一致的关键字,不会阻塞或强制它们移动到单独的线程。

关于c# - 非阻塞线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18522621/

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