我有一个Silverlight 3项目。加载其中一个页面时,将创建并启动System.Threading.Thread对象。我想确保它在用户导航离开页面时终止。这会自动发生,还是我必须在OnNavigatingFrom事件中手动终止线程?
感谢您的帮助。
答案 0 :(得分:2)
Thread
对象可以被销毁,但它创建的进程线程将继续运行,直到它最初调用的方法返回。
因此,如果你在某个循环中有一些永远不会返回的代码,那么线程将继续,直到你做一些事情来中断该循环,无论你如何处理创建它的Thread对象。 IMO班级Thread
有点不合时宜。
答案 1 :(得分:1)
不,即使没有引用,线程也会继续生存。
也许,您可以设置一个将该操作排入线程池的计时器,而不是使用一个线程(我只能假设它有重复操作)。退出页面后,计时器将停止执行操作,您将可以更好地控制系统。