ふらっと C#,C♯,C#(初心者用) Part124at TECH
ふらっと C#,C♯,C#(初心者用) Part124 - 暇つぶし2ch770:デフォルトの名無しさん (ワッチョイ dddc-IfJd)
16/09/22 23:06:35.01 P28LZX5F0.net
>>742
バグってるぞこれ
イベントハンドラを追加しっぱなしで削除してないから、PageLoadを呼ぶたびにイベントハンドラが増える
だからIsCompletedの条件を削除するとSetResultの2度目の呼び出しが発生してエラーになるはず
最後の馬鹿みたいな完了待ちループといい、これ書いた本人がTaskを正しく理解してないからこんなもん真似しちゃダメ
正しくはこんな風にする
private Task PageLoad(Uri uri) {
TaskCompletionSource<bool> pageLoaded = new TaskCompletionSource<bool>();
EventHandler handler = (s, e) => {
 if (webBrowser1.ReadyState == WebBrowserReadyState.Complete) {
  webBrowser1.DocumentCompleted -= handler;
  pageLoaded.SetResult(true);
 }
};
webBrowser1.DocumentCompleted += handler;
webBrowser1.Navigate(uri);
return pageLoaded.Task;
}


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch