我們有一個系統以單線程語言(DataFlex)運行,並通過COM調用C#代碼。一個這樣的調用需要幾秒鐘才能完成,並且能夠讓C#方法在後臺完成而不會阻塞UI是非常好的。通過COM從單線程編程語言運行C#異步方法
雖然我的第一次嘗試沒有在後臺完成,但AsyncDbLoad似乎必須在將控制權返回給DataFlex之前完成其工作。
private async Task DbLoad()
{
LongRunningMethod();
}
public async Task AsyncDbLoad()
{
await DbLoad();
}
我在做什麼錯?甚至有可能使用異步等待來做到這一點?不是,我該怎麼辦?
您使用的是什麼版本的dataflex? – AlexDev
本身在方法上拋出'async Task'什麼也不做。你必須在你的函數中有一個'await'以獲得實際的異步行爲。 –
@AlexDev我在版本15.1中測試了它,但它應該與版本19中的版本相同 –