0

所以,我让我的程序工作了,但是当我运行它时它变得没有响应,所以我决定在一个线程中运行它。现在,我保持一切不变,但不是使用按钮直接运行代码,而是使用按钮来运行包含代码的线程。该程序正在做的是创建一个对网页的请求,从网页获取 cookie,然后运行一个数字列表,使用这些数字创建不同的 POST 请求,使用 cookie 登录。

在职的:

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 回答