Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Thread killen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 08.03.2010, 23:23    Titel: Thread killen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 09.03.2010, 16:00    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 10.03.2010, 10:06    Titel: Antworten mit Zitat

Zu welcher bibliothek gehören diese funktionen? Anhalten wäre ja schon ganz ok lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 10.03.2010, 10:24    Titel: Antworten mit Zitat

winAPI

http://msdn.microsoft.com/en-us/library/ms686345(VS.85).aspx

http://msdn.microsoft.com/en-us/library/ms685086(VS.85).aspx
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 10.03.2010, 10:46    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 10.03.2010, 17:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz