2009-06-09 8 views

Antwort

2

Entweder die gleiche Anwendung kann einen separaten Thread starten oder eine andere Anwendung kann ihren eigenen Thread ausführen und regelmäßig SendMessageTimeout() aufrufen, um die WM_NULL-Nachricht an die betreffende Anwendung zu senden. Wenn es ausläuft, bedeutet dies, dass die Anwendung nicht reagiert.

0

Wenn Sie fragen, wie Sie es innerhalb des Prozesses selbst tun, können Sie nicht, es ist ein Paradox. Ein blockierter Prozess kann nicht erkennen, ob er nicht antwortet. Es wäre, als würde sich jemand aufwecken, um sich zu fragen, ob er schläft.

Basierend auf dieser und Ihrer other question, würde ich vermuten, dass Sie eine lang andauernde Operation haben und möchten, dass der Benutzer bis zum Ende wartet. Wenn sie vorher auf Ihr Fenster klicken, reagieren sie nicht und können die Anwendung zu früh beenden.

Sie müssen die lang andauernde Operation auf einem separaten Thread durchführen. Hier ist ein guter Ausgangspunkt: CodeProject article

Verwandte Themen