私が制御しないいくつかのWebサービスメソッドを呼び出すとします。このメソッドは実行に時間がかかり、Webサービスを開発した人は非同期バージョンを含むとは考えていませんでした。C#/ WinformsでWebサービスメソッドを非同期にする
C#/ winformsでこのようなメソッドの非同期ラッパーを作成する最も良い方法は何ですか?
現時点では、私はThreadPoolを使用してWebサービスメソッドを実行してから、Webサービスが終了したときにイベントを呼び出します。このようなもの。
DoWorkAsync() {
Webservice.LongMethod()
WorkCompleteEvent()
}
ただし、これは理想的ではありません。たとえば、イベントハンドラからフォームコントロールを変更しようとすると、別のスレッドなどからその操作を行わない旨の警告が表示されます。
他にこの問題を解決する方法はありますか?