0

それで、プログラムは動作しましたが、実行すると応答しなくなったので、スレッドで実行することにしました。ここでは、すべて同じにしておきますが、ボタンを使用してコードを直接実行する代わりに、ボタンを使用してコードを含むスレッドを実行しています。プログラムが行っているのは、Web ページへのリクエストを作成し、Web ページから Cookie を取得してから、番号のリストを実行し、それらの番号を使用して、Cookie を使用してログインするさまざまな POST 要求を作成することです。

働く:

private void button3_Click(object sender, EventArgs e)
    {
        string cookie = webBrowser1.Document.Cookie;
        List<string> removals = new List<string>();
        foreach (string s in listBox1.Items)
        { 
          //do stuff
        }
    }

動作していません:

thread th;
    public void thread()
        {
            string cookie = webBrowser1.Document.Cookie;
            List<string> removals = new List<string>();
            foreach (string s in listBox1.Items)
            {
             //do stuff
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            th = new Thread(thread);
            th.Start();
        }

エラー: http://prntscr.com/1mabtb

ありがとうございました。

4

1 に答える 1

0

おそらく WinForms を使用している場合、webBrowser1 コントロールでアクションを呼び出して、新しく作成したスレッドではなく UI スレッドで対話が実行されるようにする必要があります。ここで一連の回答を参照してください。

Winforms - 別のスレッドでメソッドを呼び出す

于 2013-08-20T03:38:58.713 に答える