我对使用多线程技术非常缺乏经验,但这是我尝试过的:
Thread thread = null;
for (int minute = 0; minute < 60; minute++)
{
Thread.Sleep(60000);
if (thread != null)
{
while (thread.ThreadState == ThreadState.Running) { }
}
thread = new Thread(delegate()
{
// Do stuff during the next minute whilst the main thread is sleeping.
});
thread.Start();
}
我在这里想要实现的是让一个线程在主线程休眠时运行并工作,但我不确定为什么上面的代码不起作用。发生的情况是,在第一个循环之后(在启动线程之后),ThreadState 似乎没有从“正在运行”改变。我也很好奇是否有更优雅的方式来做到这一点。
有谁知道这个问题?