我重新构造了几个全尺寸应用程序使用的C#项目。该类与硬件交互,并且通常需要几百毫秒或更长时间来执行某些命令。在许多情况下,我正在使用ThreadPool调用来编写Thread.Wait()调用来执行这些操作。现在非阻塞线程
,一些本项目使用它需要几百毫秒或更长时间来执行和返回一个值,该程序必须使用调用程序提供的几个项目的功能。我的问题是,在这个项目中是否有一些机制可以使这些调用在主线程以外的某个线程上执行并返回?换句话说,我想从这个项目的角度使这些方法是非阻塞的,而不是要求其他应用程序使用这些函数将调用放在单独的线程中。
感谢
这是一个非常模糊的问题,但你可能想看看['BackgroundWorker'(http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx) –
您是否允许更改外部接口,还是必须在不修改“全尺寸应用”的情况下工作?不知道你是否可以在不改变界面的情况下实现你想要的。如果可以,还有异步/等待模式(.net 4.5)或任何一种基于异步事件的模式(.net <= 4.0) – havardhu