Kann ich eine Anzahl der Threads unter Windows CE mit C oder Visual C++ abbrechen, ohne die Funktionen resume oder suspend aufzurufen? Der einzige Weg, die ich sehen kann, es zu tun ist so etwas wieWie kann ich wissen, ob ein Thread unter Windows CE ausgesetzt ist
int Count = SuspendThread(ThreadHandle);
ResumeThread(ThreadHandle);
dies ein paar Probleme hat, erstens, würde ich eher den Faden nicht suspendieren, und zweitens, wenn der Thread-Kernel-Code in den Suspend möglicherweise fehl läuft . Ich kann das umgehen, aber ich finde, dass es eine elegantere Lösung geben sollte. Ich könnte es auch umkehren mit
int Count = ResumeThread(ThreadHandle);
SuspendThread(ThreadHandle);
Aber das hat ähnliche Probleme. Jede gute alternative Methode, die Aussetzungszählung vom Handle zu erhalten?
Ja, das ist der einzige Weg, es zu tun. – ctacke
Interessante Antwort. Wie lange würde warten, würde 1ms in allen Fällen genügen, oder ist es wahrscheinlich langsamer? –
Eigentlich denke ich, dass Sie Wartezeit 0 verwenden können. WaitForSingleObject() wird den Status testen und sofort zurückkehren. Sie möchten nur den Rückgabewert gegen WAIT_OBJECT_0 prüfen.Was würde Ihnen sagen, dass der Thread-Status signalisiert und daher nicht ausgesetzt ist. – ralphtheninja