0

我正在用 C# VS2008 编写一个多线程应用程序。我使用此代码更改使用另一个线程创建的元素:

          m_OwnerPump.Dispatcher.Invoke(
              System.Windows.Threading.DispatcherPriority.Normal,
              new Action(
              delegate()
              {
                  m_OwnerPump.Name = textBoxPumpName.Text;
                  m_OwnerPump.Numbers = numbers.ToArray<string>();
                  //m_OwnerPump.City = tempInfo.City;
                  m_OwnerPump.EnergyConsumed = power;
              }));

它曾经和平地工作,但我不知道为什么突然抛出这个异常!

4

1 回答 1

0

我只是玩弄代码,终于找到了问题。我不知道确切的原因是什么,但它现在正在工作。

问题是在调用程序中请求另一个控件的属性,所以我将属性值放在一个字符串中并在调用程序中使用它,最终的代码片段是:

            string pname = textBoxPumpName.Text;
            m_OwnerPump.Dispatcher.Invoke(
              System.Windows.Threading.DispatcherPriority.Normal,
              new Action(
              delegate()
              {
                  m_OwnerPump.Name = pname;
                  m_OwnerPump.Numbers = numbers.ToArray<string>();
                  m_OwnerPump.EnergyConsumed = power;
              }));
于 2012-08-12T13:17:41.587 回答