在Windows Phone 7中停止线程

时间:2011-11-18 11:52:36

标签: multithreading windows-phone-7

如何在WP7中停止/中止/中断线程?

更新 提出了以下解决方案(队列事件是消费者/生产者Q的一部分,实际上并不需要退出线程:)):

protected override void Dispose(bool disposing)
{
    base.Dispose(disposing);
    //GP-HACK:Stoping the thread.
    stopExecutorThread = true;
    operationQueueNonEmptyEvent.Set();
}

private volatile bool stopExecutorThread = false;

public void Run()
{
    do
    {
        operationQueueNonEmptyEvent.WaitOne();

        if (stopExecutorThread) 
            return;

        ....
    }
}

感谢Matt!

非常感谢!

1 个答案:

答案 0 :(得分:2)

无法阻止特定线程。如果你真的需要停止在线程中运行的东西,你需要与线程中运行的代码进行通信,并告诉它停止做它正在做的事情。没有内置的方法来做到这一点。

或者考虑BackgroundWorker,因为这支持请求取消。