方法Stop 不能修改字段isRunning 在另一个线程中,为什么?
这是来自 MSDN 的示例,但该字段仅由一个线程修改。
http://msdn.microsoft.com/en-us/library/x13ttww7(v=vs.110).aspx
以下是我的代码。
public class Worker
{
private volatile bool isRunning;
public void Run()
{
ThreadPool.QueueUserWorkItem(DoSomething);
}
public void Stop()
{
this.isRunning = false;
}
private void DoSomething(object state)
{
this.isRunning = true;
while (this.isRunning)
{
Console.WriteLine("working...");
Thread.Sleep(1000);
}
Console.WriteLine("stopped.");
}
}