C# 如何在委托if条件中使用.Equals(“字符串”)?

C# 如何在委托if条件中使用.Equals(“字符串”)?,c#,delegates,C#,Delegates,我正在使用BackgroundWorker,在BackgroundWorker.DoWork中有一个if条件,但它给出了跨线程操作错误 我尝试了下面的代码,但它说对象引用未设置为对象的实例。有人能告诉我如何在委托中使用Equals方法吗 ((bool)(scrapeType.Invoke(new Action(() => { scrapeType.Text.Equals("Scrape URLS"); })))) scraptype是一个文本框您必须使用调度程序类型。下面是一个例子:

我正在使用
BackgroundWorker
,在
BackgroundWorker.DoWork
中有一个if条件,但它给出了跨线程操作错误

我尝试了下面的代码,但它说对象引用未设置为对象的实例。有人能告诉我如何在委托中使用
Equals
方法吗

  ((bool)(scrapeType.Invoke(new Action(() => { scrapeType.Text.Equals("Scrape URLS"); }))))

scraptype
是一个
文本框

您必须使用
调度程序
类型。下面是一个例子:

Dispatcher.Invoke(()=> if(txtBox.Text.Equals("abc")) doThis(); else doThat();)

您没有提到您正在使用的框架,所以我假设它是WPF。

事实上,您正在从一个线程访问
scrapeType.Text
,而该线程不是导致异常的UI线程——与
Equals(“string”)无关。