An alle Experten wie Andreas Kosch, Hagen Reddmann ...
Hallo!
Ich habe ein Problem mit dem Suspendieren von Threads und finde weder im Forum, noch in Andreas’ Win32-Lösungen (Andreas, gutes Buch!) einen Hinweis. An welcher Stelle wird ein Thread bei MyThread.Suspend angehalten? Ist das Zufall?
Die Arbeitsprozedur des Threads läuft, bis ich sie beende:
procedure MyThread.Execute; // PseudoCode!!<br>
begin<br>
InitialisiereIrgendWas;<br>
while not Terminated do // Wiederkehrende Tätigkeit <br>
begin<br>
Schritt_1;<br>
Schritt_2;<br>
...;<br>
Schritt_n-1;<br>
Schritt_n;<br>
end;<br>
DeinitialisiereIrgendWas;<br>
end;<br>
Wenn ich im Hauptprogramm nun den Thread suspendiere (erst nach „InitialisiereIrgendWas“, also auf jeden Fall in der „while not Terminated“-Schleife), scheint es so, dass ich mich irgendwo befinde, NUR WO??? Ich möchte erreichen, dass die Schleife auf jeden Fall durchlaufen wird, ich mich also entweder bei/NACH „Schritt_n“ oder bei/VOR „Schritt_1“ befinde, bevor ich den Thread mit resume wieder starte. Geht das überhaupt?
Please help!
Vielen Dank!!!!
Terry
Hallo!
Ich habe ein Problem mit dem Suspendieren von Threads und finde weder im Forum, noch in Andreas’ Win32-Lösungen (Andreas, gutes Buch!) einen Hinweis. An welcher Stelle wird ein Thread bei MyThread.Suspend angehalten? Ist das Zufall?
Die Arbeitsprozedur des Threads läuft, bis ich sie beende:
procedure MyThread.Execute; // PseudoCode!!<br>
begin<br>
InitialisiereIrgendWas;<br>
while not Terminated do // Wiederkehrende Tätigkeit <br>
begin<br>
Schritt_1;<br>
Schritt_2;<br>
...;<br>
Schritt_n-1;<br>
Schritt_n;<br>
end;<br>
DeinitialisiereIrgendWas;<br>
end;<br>
Wenn ich im Hauptprogramm nun den Thread suspendiere (erst nach „InitialisiereIrgendWas“, also auf jeden Fall in der „while not Terminated“-Schleife), scheint es so, dass ich mich irgendwo befinde, NUR WO??? Ich möchte erreichen, dass die Schleife auf jeden Fall durchlaufen wird, ich mich also entweder bei/NACH „Schritt_n“ oder bei/VOR „Schritt_1“ befinde, bevor ich den Thread mit resume wieder starte. Geht das überhaupt?
Please help!
Vielen Dank!!!!
Terry
Comment