Narf! Geschrieben 11. November 2004 Teilen Geschrieben 11. November 2004 Hallo an alle. Ich habe folgendes vor: Ich starte einen Thread, danach SetTimer(), der das Ende des Threads prüft und erst danach sollen folgende Anweisungen abgearbeitet werden. Jetzt ist es so: { CreateThread(...); SetTimer(1, 250, 0); Weitere Anweisung(en); } Wenn der Timer gesetzt wurde, führt er die Weiteren Anweisungen aus, die aber erst nach dem Ende des Threads abgearbeitet werden sollen. Gibt es Timer-Funktionen, die das Abarbeiten anhalten, bis sie fertig sind? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. November 2004 Teilen Geschrieben 11. November 2004 Wenn du die Abarbeitung anhalten willst, um auf das Ende des Threads zu warten, warum dann überhaupt ein eigener Thread? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Narf! Geschrieben 11. November 2004 Autor Teilen Geschrieben 11. November 2004 Wegen der ständigen Aktualisierung meines Dialogs. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. November 2004 Teilen Geschrieben 11. November 2004 Aber wenn du nach dem Setzen des Timers auf das Ende des Threads wartest, ist deine Nachrichtenschleife wieder blockiert. Warum setzt du die "Weitere Anweisungen" nicht in die Timerfunktion? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 11. November 2004 Teilen Geschrieben 11. November 2004 Ich glaube SetTimer ist nicht das, was Du suchst. (BTW, SetTimer hat 4 Parameter.) Schau Dir mal WaitForSingleObject und die dazugehörigen Funktionen an, oder schau allgemeiner unter Synchronization Functions nach. Mit WaitForSingleObject kannst Du z.B. darauf warten, dass ein von Dir angelegtes Event-Objekt signalisiert wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Narf! Geschrieben 12. November 2004 Autor Teilen Geschrieben 12. November 2004 Ich werde wohl die Anweisungen in den Timer setzen. Bei WaitForSingleObject() muss ich ja eine Zeitspanne eingeben, die ist jedoch unterschiedlich lang. Und mit einer while-Schleife ist alles wieder blockiert, wie Klotzkopp schon sagte. Mein SetTimer hat drei Argumente: ID, Zeit, Funktion. Kommt darauf an, welche SetTimer-Funktion man verwendet. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 12. November 2004 Teilen Geschrieben 12. November 2004 Bei WaitforSingleObject kannst du auch sagen das er unendlich lang warten soll. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 12. November 2004 Teilen Geschrieben 12. November 2004 Ich werde wohl die Anweisungen in den Timer setzen. Bei WaitForSingleObject() muss ich ja eine Zeitspanne eingeben, die ist jedoch unterschiedlich lang. Und mit einer while-Schleife ist alles wieder blockiert, wie Klotzkopp schon sagte. Du kannst, wie mein Vorposter bereits sagte, auch bis zum Eintritt des Ereignisses warten lassen. Du könntest auch eine Schleife verwenden und jeweils so lange warten lassen, dass nur unwesentlich CPU Zeit verbraucht wird. In dieser Schleife könntest Du dann auch gleich eventuelle Dialoge aktualisieren. Evtl. solltest Du uns etwas genauer Beschreiben, was Du eigentlich erreichen willst, denn aus den Postings geht es nicht vollständig hervor. Mein SetTimer hat drei Argumente: ID, Zeit, Funktion. Kommt darauf an, welche SetTimer-Funktion man verwendet. Vor der ID muss der Win32 API Funktion SetTimer noch ein HWND übergeben werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Narf! Geschrieben 10. Dezember 2004 Autor Teilen Geschrieben 10. Dezember 2004 Ich habe das mal mit den Threads probiert. Klappt eigentlich ganz gut, aber: In meinem Arbeitsthread habe ich als Parameter eine CListCtrl-Variable, mit der ich im Thread Aktualisierungen vornehmen will. Jedoch bleibt er beim Breakpoint-Lauf bei m_cList->SetItemText(item, Spalte, Text) stehen und rührt sich nicht mehr. Was nun? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.