从后台工作者请求WinForm标签值非法?

时间:2015-03-19 08:41:35

标签: c# winforms

我想知道以下内容是否会影响我的应用程序的性能。

我为更新后台工作程序而进行的每次调用我都是以正确的方式进行的,没有交叉线程,但是如果我从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);

非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

不,这不合法。 您无法像这样访问后台工作程序中的UI。为此,您需要调用它,例如:

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