我有一个c#程序。 程序的form1不时在不同的线程上创建form3的新实例。 所以每个form3实例都包含这些方法。 我怀疑当两个线程同时调用同一个方法或另一个线程已经全部使用其中一个时,问题就出现了。特别是因为它们具有相同的web浏览器名称
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;
}
这个containsss()方法的问题在于它适用于
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();