我有 ac# 程序。程序的 form1 不时在不同的线程上创建 form3 的新实例。所以每个 form3 实例都包含这些方法。我怀疑当两个线程同时调用相同的方法或另一个线程已经使用其中一个时,会出现问题。特别是因为它们具有相同的网络浏览器名称
private void vent()
{
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
}
public bool containss(string SearchText)
{
string page = wb.Document.Body.InnerText;
if (page.ToLower().Contains(SearchText.ToLower()))
return true;
else return false;
}
这个 contains() 方法的问题是它适用于
string page = wb.Document.Body.InnerHtml;
并不是
string page = wb.Document.Body.InnerText;
我得到:对象引用未设置为对象的实例。在这条线上:
if (page.ToLower().Contains(SearchText.ToLower()))
我制作这样的线程:
private void ThreadProc()
{
Form frm = new Form3(currentAB);
frm.ShowDialog();
}
Thread ab1 = new Thread(new ThreadStart(ThreadProc));
ab1.SetApartmentState(ApartmentState.STA);
ab1.Start();