注册 登录
编程论坛 C# 论坛

小白请教大内高手如何将线程里的数组显示在控件上。代码贴上

shi521min 发布于 2015-05-26 11:37, 727 次点击
  private void backgroundWorker1_DoWork_1(object sender, DoWorkEventArgs e)            
         {
             UInt16[] RegisterValue1 = new UInt16[0];
             UInt16[] RegisterValue2 = new UInt16[0];
             int[] name = new int[2];
             BackgroundWorker worker = sender as BackgroundWorker;
             while (worker.CancellationPending == false)           
             {
                 RegisterValue1 = Master.ReadHoldingRegisters(1, 4096, 1);
                 RegisterValue2 = Master.ReadHoldingRegisters(1, 4102, 1);
                  n = Convert.ToInt16(RegisterValue1[0]);
                  nn = Convert.ToInt16(RegisterValue2[0]);
                  name[1] = (ushort)n;
                  name[2] = (ushort)nn;
                // worker.ReportProgress(0, n);                 
                 Thread.Sleep(1);
             }   
         }
2 回复
#2
over12302015-05-26 17:24
线程去控制控件,最好方式是用委托

也可以加这句:
  System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
然后在线程里面就可以直接控制控件了

[ 本帖最后由 over1230 于 2015-5-26 17:26 编辑 ]
#3
shi521min2015-05-27 18:15
谢谢版主,已经解决问题了!!!
1