如题: 怎么做才能让线程加时钟的方式 实时更新数据!   对线程初用,很多地方不大理解,请各位帮忙!..以下部分代码: 
     private void ReportForm_Load(object sender, EventArgs e)
        {
            //FormSet();
            //InitializeCommands();
            //GridStyles();
            //GridHead();

            td = new Thread(new ThreadStart(ResfeshData));
            td.Start();
            Thread.Sleep(tmUpdate.Interval);
       
        }        private void ResfeshData()
        {
            CostManage.Model.Report_PourSteelInfoWasteBook SteelInfoMode = null;
            for (int i = 3; i < _flex.Rows.Count; i++)
            {
                if (_flex.Rows[i][0] != null && _flex.Rows[i][0].ToString() != string.Empty)
                {
                    if (i % 2 == 1)
                    {
                       //...............
                    }
                }
                else
                    break;
            }
        }请问,该如何实现..希望能给点代码..思路!  感激不尽..

解决方案 »

  1.   

    是不是要在线程里面操作UI呢
    如果是的话,用下面这个方法delegate void ResfeshDataHandler(string text);void ResfeshData(string text)
    {
        if (textbox.InvokeRequired)
        {
            ResfeshDataHandler seh = ShowError;
            this.Invoke(seh, new object[] { text });
        }
        else
        {
            textbox.Text = text;
        }
    }
      

  2.   

    发错,上面ShowError应该是ResfeshData
      

  3.   

    是要通过线程每隔10秒种更新一下 FlexGrid控件 里面的数据..
    //FlexGrid 只是一个类似于DataGrid的装载数据的第三方控件..
      

  4.   


    我要做的就是每隔一段时间更新一次数据,你说的如果可以实现更好..
    我加了个时钟..在 private void timer1_Tick(object sender, EventArgs e)里. 怎么判断每隔十秒会进入这个事件..
    我发现timer1里只有这一个事件..但现在我无法在启动程序以后进入这个事件..
      

  5.   

    LZ做的是BS还是CS呢?
    我猜测是不是系统启动后,就会根据一些条件去一直循环的更新某些东西啊?而某些东西我理解为缓存数据,每过一段时间就去更新这个
    缓存数据吧?按照以上猜测我给出的一个简单方案如下:1:定义一个独立线程组类class MyThread
    {
        private MyThread();
        private static Thread td; = new Thread(new ThreadStart(ResfeshData));//执行每隔一段时间都会去更新东西的方法
        private static bool mBisrun = false; //是否已经启动
        private static int mIResfeshDataSleepTime = 1000;//睡眠时间    void   ResfeshData()
        {
          while(mBisrun)
          {
            //每隔一段时间做某事 ,这里放入你要做某事的方法
             
            Sleep(mIResfeshDataSleepTime);//睡眠一段时间
          }
        }
        public static void run(int sleeptime)
        { 
           if(!td.IsAlive)
           {
              mIResfeshDataSleepTime = sleeptime;
              td.Start();
              mBisrun = true;
           }
        }
        public static void Stop()
        ........
    }2:在系统启动时候会触发APPLECATIONSTART这个事件,在时间中加入 MyThread.Run(10000);
    这样就能实现,每过1段时间都会去调用更新的方法了~