Ich habe eine Anwendung, die unter anderem mit SendMessage mit einer anderen Anwendung interagiert. Alles funktioniert gut, bis die andere Anwendung hängt (entweder weil sie tatsächlich eingefroren ist oder einen langen blockierenden Anruf ausführt). Ich möchte eine Anwendung simulieren, die mit einer C# WinForms-Anwendung hängt. Gibt es eine Möglichkeit, einen lang andauernden blockierenden Anruf zu starten? Oder vielleicht eine Möglichkeit, die Anwendung tatsächlich einzufrieren? Vielleicht etwas wie WebClient.DownloadString(), aber etwas, das niemals zurückkehren wird.Simulieren einer gesperrten/gehangenen Anwendung
2
A
Antwort
5
while(true) { } // busy waiting
Thread.Sleep(time); // blocking
0
Wenn Sie eine lange laufende Aufgabe simulieren möchten, verwenden Sie
Thread.Sleep(timeout);
und mit Timeout.Infinite
wenn Sie wollen immer blockieren.
Wenn Sie auch eine starke Prozessorauslastung simulieren möchten, verwenden Sie eine Endlosschleife.
while (true) { }
0
Wie wäre es, wenn Sie einfach die Nachrichtenpumpe ausschalten? Dann wird Ihre App nicht nur als eingefroren angezeigt, sondern das System meldet sie als eingefroren (a la IsHungAppWindow (hWnd)).
Verwandte Themen
- 1. iOS - simulieren Tastaturanimation auf Notes-Anwendung
- 2. Simulieren einer Anrufunterbrechung im iPhone-Simulator
- 3. Sitzung in einer Windows-App simulieren
- 4. Tastaturereignis simulieren
- 5. C#: simulieren Speicherlecks
- 6. Tabellensperrprobleme simulieren
- 7. Drehmoment und Drehimpuls simulieren
- 8. Simulieren Sie einen Button-Klick innerhalb der Anwendung (VB.NET)
- 9. So simulieren Speicherzuweisungsfehler
- 10. Farbtransparenz simulieren
- 11. simulieren Zufälligkeit
- 12. simulieren viewdDidLoad?
- 13. Wie Socket Verbindungsverlust zu simulieren?
- 14. "schnellere Zeit" in Linux simulieren
- 15. Simulieren einer nicht-lokalen Anfrage in Rails/RSpec Anfrage Testen
- 16. Pinselstriche für Malanwendung simulieren
- 17. Mikrofon simulieren (virtuelles Mikrofon)
- 18. Steuern einer Anwendung mit einer anderen Anwendung
- 19. Einrichten einer Anwendung von einer übergeordneten Anwendung
- 20. ReactJS Änderungswert/Komponententest simulieren
- 21. Android - Startseite simulieren klicken
- 22. Simulieren kovarianten Rückgabetyp Verhalten
- 23. langsam drucken (Eingabe simulieren)
- 24. Serielle Schnittstelle simulieren
- 25. Shared Hosting-Vertrauensstufen simulieren
- 26. Simulieren Job Checkpointing Java
- 27. Simulieren Mausbewegung in Ubuntu
- 28. python win32 simulieren klicken
- 29. Simulieren klicken auf DIV
- 30. Bildschirm "Gerät simulieren" auf Webseite
Doh, so einfach. Ich habe das Offensichtliche völlig übersehen. Ich habe damit angefangen, weil es unendlich ist: System.Threading.Thread.Sleep (System.Threading.Timeout.Infinite); –