对于测试,使程序出现“无响应”的最简单方法是什么?中断 Windows 消息或将其置于无限循环中?
我尝试了一个简单的循环,例如
while(true)
但这不起作用。测试应用程序是一个 C# 控制台应用程序。它在控制台中运行的事实是否使它“更具响应性”?也许添加的控制台处理的某些部分使其始终响应?
更新:
将其更改为一个简单的 Winform 应用程序,将其放入无限循环中。工作就像一个魅力。感谢服务。
对于测试,使程序出现“无响应”的最简单方法是什么?中断 Windows 消息或将其置于无限循环中?
我尝试了一个简单的循环,例如
while(true)
但这不起作用。测试应用程序是一个 C# 控制台应用程序。它在控制台中运行的事实是否使它“更具响应性”?也许添加的控制台处理的某些部分使其始终响应?
更新:
将其更改为一个简单的 Winform 应用程序,将其放入无限循环中。工作就像一个魅力。感谢服务。
从 Windows 任务管理器的角度来看,控制台应用程序永远不会“无响应”。实际上,任务管理器并没有运行您的程序,它正在运行一个正在运行您的程序的 shell (cmd.exe),并且该 shell 的编写方式是即使您的程序没有响应,它也会始终响应。如果您不是通过 shell 运行程序而是直接启动它,那么程序将不会有任何 UI 并且它不会是任务管理器中的“应用程序”(这意味着它不会出现在“应用程序”选项卡),它只是一个过程。
如果您只需要从任务管理器的角度模拟任何“无响应”程序,您应该制作一个简单的 winforms 应用程序并将其置于无限循环中。如果有某种晦涩的方法使程序从控制台应用程序显示为“无响应”,那么至少它会比任何标准桌面 GUI 类型更难。
你可以做一个Thread.Sleep(X)
使程序无限期“不响应”的最简单方法是使用无限循环:
while(true);
在 UI 主题上做任何工作(对于 UI 应用程序)
Thread.Sleep
While (true)
这可能会让您更深入地了解您试图完成的工作(.net 控制台应用程序在连续打印出大量字符时停止响应)