|
分類:[.NET 全般]
VBでTaskクラスを使用し、外部アプリの入出力を非同期で確認する処理を書いております。 入出力のテストは何個かありますので、これらの非同期処理を順番に実行するように書きました。 具体的には、TaskのContinueWithの中で次のTaskを呼ぶような感じです。
順次実行待機には、最初のTask実行後、プログレスバーのあるフォームのShowDialogで操作を奪って、イベントが発生するたびにプログレスバー更新、次のTaskを実行、すべて終了したらダイアログを閉じて終了するようにしました。 しかし最初の一回は良いのですが、ContinueWithで次のTaskが実行されると全体的にウィンドウが固まります。 そのTaskが終了イベントを出すと、バーは更新されますがTaskの中を実行中は固まるようです。
ContinueWithの中でどんどん階層的にTaskを呼び出すのがいけないのかなと思い別の方法を検討しましたが、このTaskを順番に実行し、かつ待機可能な方法が思いつきません。 何か方法がありますでしょうか。 よろしくお願いいたします。
Visual Studio Community .Net4.5
|