2015-03-19 45 views
0

我想知道以下是否会影响我的应用程序的性能。请求后台工作者的WinForm标签值非法?

我为更新后台工作者所做的每次调用我都没有跨线程的正确方式,但是如果我从UserInterface请求一个值而不更新它,这是否是非法的并且会影响性​​能?

这是我的代码中的一小段代码。

private void bw_DoWork(object sender, DoWorkEventArgs e) 
     { 
      Settings settings = e.Argument as Settings; 
      BackgroundWorker worker = sender as BackgroundWorker; 


      if ((worker.CancellationPending)) 
      { 
       e.Cancel = true; 

      } 
      else 
      { 

       if (settings.O1_Enabled) 
       { 
        try 
        { 

         counter_O1 = Convert.ToInt32(this.rowcount_O1.Text); 

任何意见将不胜感激。

+0

你试过了吗? – cubrr 2015-03-19 08:46:01

+0

是的,我已经尝试过,但没有得到任何类型的警告 – SK2017 2015-03-19 09:03:14

回答

0

不,这不合法。 你不能像这样访问后台工作者中的UI。要做到这一点,你需要援引这一点,例如:

Dispatcher.Invoke(new Action(() => 
      { 
       counter_O1 = Convert.ToInt32(this.rowcount_O1.Text); 
      })); 
+0

顺便说一句。这是一些操作,所以表现会受到影响,但在你不必担心:) – MajkeloDev 2015-03-19 08:54:01

+1

感谢您的意见,感谢它! – SK2017 2015-03-19 09:04:47

+0

总是乐于提供帮助。 – MajkeloDev 2015-03-19 09:07:43