Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 08.03.2010, 23:23 Titel: Thread killen |
|
|
Hallo allerseits!
Kurze frage: Kann man einen, mit ThreadCreate erstellten Thread nachträglich aus dem haupt-thread herraus "killen" ohne das es explizit in der Thread-Routine vorgesehen ist?
Ich weiss, sowas ist nicht sauber. Wahrscheinlich wird dann der Speicherplatz der von dem thread gebraucht wurde, nicht mehr freigegeben. Aber ich denke es ist besser, einen Thread (z.B. ein Thread in dem eine Routine aus einer DLL läuft) abzuschießen bevor er total amok läuft...
Dabei wird sicherlich das größte problem sein, das ein "not-ausstieg" im Thread selber nicht implementiert ist. Also wo keine "conditional variable" für denn kill-vorgang vorgesehen ist.
Die Frage könnte ich auch anders formulieren:
Kann man Threads in denen "fremd-routinen" ablaufen nachträglich "killen" ? |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 09.03.2010, 16:00 Titel: |
|
|
Du kannst ihn mit SuspendThread() anhalten. Dann kannst du in Ruhe seinen Threadeinsprungpunkt mit NOPs überschreiben. Dann ResumeThread() aufrufen. Wenn du aber es ganz unglücklich triffst, kann dann aber auch das ganze Programm abschmieren. Sollte normalerweise aber nicht passieren, denn in einer Criticalsection kann man keinen Thread anhalten. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 10.03.2010, 10:06 Titel: |
|
|
Zu welcher bibliothek gehören diese funktionen? Anhalten wäre ja schon ganz ok  |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 10.03.2010, 10:46 Titel: |
|
|
Und die WinApi-Thread-Befehle sind kompatibel mit den Freebasic-Threads die mit ThreadCreate erstellt wurden?
Ich muss auch ehrlich sagen, ich dachte mehr an etwas freebasic-eigenes. Vor allem plattformunabhängig. (bis auf dos natürlich) |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 10.03.2010, 17:14 Titel: |
|
|
Gibts aber nicht.
Sowas ist schlichtweg Betriebssystemspezifisch.
Du könntest höchstens schauen, ob Boost.Thread dir sowas bietet. Aber das ist ja C++ (lach).
Und nein, ein HANDLE auf einen Thread ist nicht das, was dir ThreadCreate zurückgibt. Wohl aber CreateThread. |
|
Nach oben |
|
 |
|