线程中重新启动Timer的问题
Timer Tick的时候启动一线程,同时需要线程完成后执行一些操作
private void tmTimer_Tick(object sender, System.EventArgs e)
{
tmTimer.Stop();
Thread t = new Thread(new ThreadStart(worker));
t.Start();
t.Join();
tmTimer.Enabled = true;
//do something ...
}
private void worker()
{
//do some work...
}
这种情况执行没问题,但主线程会阻塞,因此加入一控制线程:
private void tmTimer_Tick(object sender, System.EventArgs e)
{
Thread t = new Thread(new ThreadStart(controller));
t.Start();
}
private void controller()
{
tmTimer.Stop();
Thread t = new Thread(new ThreadStart(worker));
t.Start();
t.Join();
tmTimer.Enabled = true;
//do something ...
}
private void worker()
{
//do some work...
}
这样的话,发现Timer第一次Tick以后,正常执行controller和worker,然后Timer就再没有动静了,难道线程中不能控制Timer?但是线程中更改其他控件如Label都没问题啊?