5

对于测试,使程序出现“无响应”的最简单方法是什么?中断 Windows 消息或将其置于无限循环中?

我尝试了一个简单的循环,例如

while(true)

但这不起作用。测试应用程序是一个 C# 控制台应用程序。它在控制台中运行的事实是否使它“更具响应性”?也许添加的控制台处理的某些部分使其始终响应?

更新:

将其更改为一个简单的 Winform 应用程序,将其放入无限循环中。工作就像一个魅力。感谢服务。

4

4 回答 4

6

从 Windows 任务管理器的角度来看,控制台应用程序永远不会“无响应”。实际上,任务管理器并没有运行您的程序,它正在运行一个正在运行您的程序的 shell (cmd.exe),并且该 shell 的编写方式是即使您的程序没有响应,它也会始终响应。如果您不是通过 shell 运行程序而是直接启动它,那么程序将不会有任何 UI 并且它不会是任务管理器中的“应用程序”(这意味着它不会出现在“应用程序”选项卡),它只是一个过程。

如果您只需要从任务管理器的角度模拟任何“无响应”程序,您应该制作一个简单的 winforms 应用程序并将其置于无限循环中。如果有某种晦涩的方法使程序从控制台应用程序显示为“无响应”,那么至少它会比任何标准桌面 GUI 类型更难。

于 2012-09-24T13:40:50.627 回答
3

你可以做一个Thread.Sleep(X)

于 2012-09-24T13:25:55.953 回答
2

使程序无限期“不响应”的最简单方法是使用无限循环:

while(true);
于 2012-09-24T13:26:17.077 回答
1

在 UI 主题上做任何工作(对于 UI 应用程序)

Thread.Sleep  



  While (true)

这可能会让您更深入地了解您试图完成的工作(.net 控制台应用程序在连续打印出大量字符时停止响应

于 2012-09-24T13:27:10.263 回答