![]() |
AW: Thread freigeben, wenn er festklebt :)
Zitat:
![]() |
AW: Thread freigeben, wenn er festklebt :)
Zitat:
Generell stimmt ich aber zu: Priorität sollte haben, zu verhindern, dass der Thread hängt. Warum er das tut, kann natürlich keiner sagen außer dir selbst. Grüße Dalai |
AW: Thread freigeben, wenn er festklebt :)
Danke für eure Hilfe, es Funktioniert jetzt.
Delphi-Quellcode:
iThreadID:=FWorker.ThreadID;
hThread:=OpenThread(THREAD_TERMINATE or THREAD_QUERY_INFORMATION ,false,iThreadID); if hThread<>0 then try System.SetLastError(ERROR_SUCCESS); iThreadExitCode:=0; if not GetExitCodeThread(hThread,iThreadExitCode) then sMsg:=SysErrorMessage(GetLastError); System.SetLastError(ERROR_SUCCESS); bOK:=TerminateThread(hThread,iThreadExitCode); if bOK then sMsg:='OK' else begin sMsg:=SysErrorMessage(GetLastError); end; finally CloseHandle(hThread); end; |
AW: Thread freigeben, wenn er festklebt :)
PS: Ohne auf die Notwendigkeit von TerminateThread(..) einzugehen: Das ständige Zwischenspeichern des Rückgabewertes, SysErrorMessage usw. lässt sich vereinfachen: Schau dir mal den Aufruf
Delphi-Quellcode:
an.
System.SysUtils.Win32Check(..)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz