2013-07-08 164 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),我記得這是不正常的? –