Threads nach dem beenden automatisch neustarten?
-
Hi ich habe ca 10 Threads am laufen, jedoch beendet sich manchmal einer und ich kann einfach nicht herausfinden woran es liegt... der debugger meldet keine fehler obwohl ich im menu alle fehler melden eingestellt habe (unter debuggen ausnahmen). Also auf jedenfall möächte ich das wenn ein Thread sich beendet er möglichst schnell wieder neu gestartet wird. Ich muss unbedingt wissen, ob jeder Thread läuft.
danke schonmal
MfG
ExElNeT
-
Also ohne Source können wir dir auch nicht sagen wieso sich manchmal ein Thread bei dir beendet...
[ Dieser Beitrag wurde am 18.11.2002 um 14:49 Uhr von Nemesyzz editiert. ]
-
jaja, das werden nen paar lange nächte für dich. irgendwelche programme mit threads zu debuggen ist echt herbe. viel spass
-
hehe naja mir gehts auch eher um die frage, ob man threads automatisch wieder restarten kann beim beenden...
aber der code dürfte dir bekannt sein *g
UINT CMyThread(LPVOID lpParam) { Stringbearbeitung strbear; CString ergebnis2; while(thread) { ergebnis2 = strbear.getFileSource(url, true); Sleep(1000); } return 0; } AfxBeginThread(CMyThread); CString getFileSource(CString url, bool refresh) { CString somecode, s; try { CInternetSession session; CStdioFile* file; if(refresh) { file = session.OpenURL(url, 1, INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_RELOAD); } else { file = session.OpenURL(url); } if( file) { while( file->ReadString(somecode)) { s += somecode; } session.Close(); file->Close(); delete file; } } catch (CInternetException* m_pException) { m_pException->Delete(); } return s; }
so!
[ Dieser Beitrag wurde am 18.11.2002 um 14:57 Uhr von ExElNeT editiert. ]
-
Neustarten?
Für sowas würde ich ne while-Schleife nehmen.../E: Aso du hast ja ne while-Schleife drin - dann versteh ich nich ganz...
Der Thread beendet sich doch nur wenn thread == 0...
[ Dieser Beitrag wurde am 18.11.2002 um 15:04 Uhr von Nemesyzz editiert. ]
-
Ich mache das so.
Timer alle 50 ms
Mit GetExitCodeThread frage ich ab ob der Thread noch aktiv ist.
Allerdings verwende ich einen Klasse von CWinThread abgeleitet.
-
das ja das komische ist ja wenn thread false werden würde dann wäre das auch das ende für die anderen 9, so ist es aber nicht...
also ich habe mir überlegt ich mache eine schleife die prüft ob der thread noch läuft und wenn nicht ihn startet... aber wie kann ich rausbekommen ob er noch läuft? und wie kann ich das ganze verwirklichen ohne eine endlosschleife die den cpu sprengt zu riskieren? bietet die mfc eine passende möglichkeit?
danke schonmal
MfG
ExElNeT
-
Hat du meinen Beitrag nicht gelesen ?
-
so kanns gehen wenn man zu lange an der antwort schreibt... wie funktioniert der timer? hast du ein code bespiel?
MfG
ExElNeT
-
lol du auch
-
Naja - ich würde aber nach dem Fehler lieber suchen...
Das ist ja nicht normal das ein Thread sich einfach so beendet...
-
die fehlersuche wird aber noch lange dauern, denn manchmal hält er 10 min manchmal auch nur eine minute durch... und bis ich das endgültig geplant habe hätte ich gerne eine absicherung
MfG
ExElNeT
-
Now that cannabis has been reclassified, does it remain legal to own the seeds?
A company are using our business address as a "return to sender" address, I suppose in an attempt to not get caught. We tried to take them to the Police Station in the Summer but they wouldn't take them because it was legal to own cannabis (marijuana) seeds.