2013-07-08 121 views
4

我见过很多关于为什么不使用Backgroundworkers导致UI冻结的帖子,我明白这一点。但是,如果发生这种情况,我无法将光标移动几秒钟?我不确定一个线程是什么或者它是如何工作的,但是一个线程的工作量肯定不会影响另一个线程的响应度。当然,Windows 7光标不会像我的程序(4237或其他)那样在同一个线程上运行。有没有一个复杂的,可行的理由,或者它只是我的电脑分崩离析?当主UI线程冻结时,为什么我的PC会“冻结”?

回答

1

进程是在CPU上执行的程序的实例(一个进程可能由一个或多个线程组成)。如果一个线程占用CPU,那么其他进程就会“饿死”。那就是他们不会分配足够的CPU时间来完成。线程是一个有趣的话题。有关更多信息,请搜索维基百科:线程,进程,饥饿或死锁。如果你想知道更多关于操作系统概念的书籍。我发现Abraham Silberschatz的操作系统概念特别有用(可作为pdf轻松获取)。

+0

...哇。短但甜美!非常感谢 –

+2

'我无法将光标移动几秒钟' - 即使在单核处理器上,我也不确定这是否是完整的故事,除非有多个具有更高优先级的运行线程比UI线程,这不应该发生。 “几秒钟”是很长一段时间。 –

+0

@MartinJames是的 - 我相信光标冻结与我的线程无关。当我在Visual Studio中进行调试时,它告诉我该进程的编号大约是4000-6000([6480] Process:MyApplication.vshost.exe),我记得这是不正常的? –