システムはシングルスレッド言語(DataFlex)で動作し、COM経由でC#コードを呼び出します。そのような呼び出しの1つは完了するまでに数秒かかるので、UIをブロックせずにC#メソッドをバックグラウンドで終了させることができればうれしいでしょう。シングルスレッドプログラミング言語からCOM経由でC#非同期メソッドを実行
私の最初の試みは、バックグラウンドで終了しませんでした。AsyncDbLoadは、DataFlexに制御を戻す前に、作業を完了しなければならなかったようです。
private async Task DbLoad()
{
LongRunningMethod();
}
public async Task AsyncDbLoad()
{
await DbLoad();
}
私は間違っていますか? async-awaitを使用してこれを行うことも可能ですか?そうではありません、どうすればいいですか?
どのようなバージョンのdataflexを使用していますか? – AlexDev
メソッドに対して 'async Task'を単独で投げることは何もしません。 –
@AlexDev私はバージョン15.1でこれをテストしましたが、それはバージョン19で同じでなければなりません –