DOBON.NETプログラミング道掲示板

■34437 / 1階層)  WebBrowser Control foreachで値が消える
□投稿者/ 魔界の仮面弁士 大御所(1277回)-(2020/03/19(Thu) 16:57:40)
  • アイコン2020/03/19(Thu) 17:08:28 編集(投稿者)

    No34436に返信(げんむさんの記事)
    > URLを10取得したとします。最初に取得したURLは問題なくNavigateを使って移動できますが、残りの9つのURLには移動することができません。

    HTMLElementCollection を foreach で『列挙している最中』に
    Navigate を呼び出さないようにしてください。

    Navigate すると Document の内容にも影響するため、
    取得した URL はあらかじめ List<string> 等に書き出しておき、
    『列挙が終わった後』で、改めて Navigate しなおしてください。


    > //読み込みを待つ処理をここに書く

    この手の待機処理を組み込むべきではありません。

    ループ待機等でロード完了を待ち合わせるような設計にはせず、
    「DocumentCompleted イベント」を使用するようにしてください。


    Web ページのロードが完了するまでにはタイムラグがあります。
    ドキュメントのロードが完了すると、DocumentCompleted イベントが
    呼び出されるので、解析処理はこのイベントハンドラに記述します。

    また、WebBrowser は STAThread でのメッセージループを要求するため、
    Navigate してすぐに指定ドキュメントの読み込みが
    開始される訳ではありません。ロードが開始されるのは、
    アプリケーションがアイドル状態になってからです。



    Task 化して、Navigate → DocumentCompleted → 解析 → 再 Navigate が
    順次行われるような設計にはできるかもしれませんが…手続きを間違えると
    デッドロックを引き起こす可能性がありそう。
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←WebBrowser Control foreachで値が消える /げんむ →Re[2]: WebBrowser Control foreachで値が消える /げんむ
 
上記関連ツリー

Nomalアイコン WebBrowser Control foreachで値が消える / げんむ (20/03/19(Thu) 16:25) #34436
Nomalアイコン WebBrowser Control foreachで値が消える / 魔界の仮面弁士 (20/03/19(Thu) 16:57) #34437 ←Now
  └Nomalアイコン Re[2]: WebBrowser Control foreachで値が消える / げんむ (20/03/23(Mon) 09:48) #34451 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -