我有一个应用程序,它使用SendMessage(以及其他东西)与另一个应用程序进行交互。一切正常,直到另一个应用程序挂起(因为它实际上已冻结或正在进行长时间的阻塞调用)。我想模拟使用C#WinForms应用程序挂起的应用程序。有没有办法开始长时间运行,阻止通话?或者可能是一种导致应用程序实际冻结的方法?也许像WebClient.DownloadString(),但是永远不会返回。
答案 0 :(得分:5)
while(true) { } // busy waiting
Thread.Sleep(time); // blocking
答案 1 :(得分:0)
如果要模拟长时间运行的任务,请使用
Thread.Sleep(timeout);
和Timeout.Infinite
,如果你想永远阻止。
如果您想模拟繁重的处理器使用率,请使用无限循环。
while (true) { }
答案 2 :(得分:0)
你如何关闭消息泵呢?然后,您的应用程序不仅会被冻结......系统实际上会将其报告为已冻结(即IsHungAppWindow(hWnd))。