为什么在使用线程时会出现此错误
本文关键字:错误 线程 为什么 | 更新日期: 2023-09-27 18:28:13
所以,我让程序正常工作,但当我运行它时,它变得没有响应,所以我决定在线程中运行它。现在,我保持了一切不变,但我没有使用按钮直接运行代码,而是使用按钮运行包含代码的线程。该程序正在做的是创建一个对网页的请求,从网页中获取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
谢谢。
您可能正在使用WinForms,在这种情况下,您应该调用webBrowser1控件上的操作,以便在UI线程而不是新创建的线程上执行交互。请参阅此处的一系列答案:
Winforms-调用另一个线程中的方法