这就是我想做的事:在计时器回调创建的线程不希望终止
- 有一些间隔
- 在计时器回调代码定时器,如果某些条件得到满足,另一个线程应运行
我把我的代码放在一个由主窗体实例化并且代码在方法调用('StartSync()',se示例代码)上执行的类中。
问题是代码运行了几秒钟但终止。我想我正在做一些愚蠢的事情,但我真的不明白它是什么。感谢有关这方面的任何帮助。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Diagnostics;
namespace WindowsFormsApplication1
{
class Syncer
{
static bool SYNC_IN_PROGRESS;
public void StartSync()
{
SYNC_IN_PROGRESS = false;
Timer timer = new Timer(timerCallback, null, 0, 1000);
}
public void timerCallback(Object stateInfo)
{
Debug.WriteLine("Sync?");
if (!SYNC_IN_PROGRESS)
{
SYNC_IN_PROGRESS = true;
Thread thSync = new Thread(new ThreadStart(sync));
thSync.Start();
}
}
void sync()
{
Debug.WriteLine("Syncing...");
SYNC_IN_PROGRESS = false;
}
}
}
为什么不运行代码在计时器回调,而不是一个新的线程? – 2010-11-06 09:22:44
你写的线程只会保持活动几微秒。很难诊断不可见的代码问题。 – 2010-11-06 12:09:58