我重新構造了幾個全尺寸應用程序使用的C#項目。該類與硬件交互,並且通常需要幾百毫秒或更長時間來執行某些命令。在許多情況下,我正在使用ThreadPool調用來編寫Thread.Wait()調用來執行這些操作。現在非阻塞線程
,一些本項目使用它需要幾百毫秒或更長時間來執行和返回一個值,該程序必須使用調用程序提供的幾個項目的功能。我的問題是,在這個項目中是否有一些機制可以使這些調用在主線程以外的某個線程上執行並返回?換句話說,我想從這個項目的角度使這些方法是非阻塞的,而不是要求其他應用程序使用這些函數將調用放在單獨的線程中。
感謝
這是一個非常模糊的問題,但你可能想看看['BackgroundWorker'(http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx) –
您是否允許更改外部接口,還是必須在不修改「全尺寸應用」的情況下工作?不知道你是否可以在不改變界面的情況下實現你想要的。如果可以,還有異步/等待模式(.net 4.5)或任何一種基於異步事件的模式(.net <= 4.0) – havardhu