如题: 怎么做才能让线程加时钟的方式 实时更新数据! 对线程初用,很多地方不大理解,请各位帮忙!..以下部分代码:
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;
}
}请问,该如何实现..希望能给点代码..思路! 感激不尽..
如果是的话,用下面这个方法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;
}
}
//FlexGrid 只是一个类似于DataGrid的装载数据的第三方控件..
我要做的就是每隔一段时间更新一次数据,你说的如果可以实现更好..
我加了个时钟..在 private void timer1_Tick(object sender, EventArgs e)里. 怎么判断每隔十秒会进入这个事件..
我发现timer1里只有这一个事件..但现在我无法在启动程序以后进入这个事件..
我猜测是不是系统启动后,就会根据一些条件去一直循环的更新某些东西啊?而某些东西我理解为缓存数据,每过一段时间就去更新这个
缓存数据吧?按照以上猜测我给出的一个简单方案如下: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段时间都会去调用更新的方法了~