2

通常情况下,我的一个程序停止运行并且变得无响应。更臭名昭著的例子之一是 Windows 任务管理器:

在此处输入图像描述

当一个程序像这样冻结时,它通常就这样挂起,然后我终止了该应用程序。但是,在某些情况下,应用程序会解冻并恢复,就好像什么都没发生一样。

这是如何运作的?

我会假设当一个程序像这样被卡住时,它除了死之外什么也做不了,否则它一开始就不会卡住。这个问题的答案可能取决于编写应用程序的语言,在这种情况下,请随意使用 Java 或 C 作为参考。

4

1 回答 1

3

如果程序在 UI 线程本身上运行需要很长时间(例如进行大量计算、等待 Web 回复)的操作,则 UI 线程会被卡住并且不能再执行消息泵送: UI 线程同时运行消息泵和执行代码?

发生这种情况时,可能会出现“无响应”消息。如果长期任务完成,则程序“解冻”。

于 2013-02-25T11:25:44.220 回答