質問: false; } } ``` ※ 処理は続行できるようになるものの、メインの処理でもともと定義していた変数参照できなくなる... 動作環境 ----- * WPFアプリケーション * .NET Frame Work 4.5 * Visual Studio2013 という状態です。よろしくお願いします。
回答: こういう実装はasync/awitを使うと簡単に実現できます。 ``` public async void Click_DownloadFiles(object sender, RoutedEventArgs) e { // ユーザ向かいには「処理中」のような画面が出ている状態です。 A(); // WebBrowserクラスを使用したスクレイピング処理中で、 // 特定の要素(パスワード入力画面入力フォームなどを見つけるとユーザに画面を返します。) await Task.Run(new Action(()=>{ if (elementExist()) { invoke(new Action(()=>{ url = string.Format("views/Pages/PasswordInput.xaml") Frame.MainFrame.Navigate(new URI(url, UriKind.Relative)); })); } })); // 入力後ここから処理を再開したい... B(); } ``` 試していないので上記コードで文法ミスや冗長な部分などがあるかもしれませんが,上記のような感じで実現できると思います。awaitで,非同期処理内で実行される処理が終わるまで待つという処理ができます。