(Gast)
n/a Beiträge
|
Re: [Artikel] Wann wird ein Prozess terminiert?
11. Mär 2006, 17:09

Zitat von Luckie:
Wie gesagt, Delphi 6 Professional und Hauptfenster geschlossen und der Prozess war noch da im Taskmanager.
Etwas Code könnte nicht schaden.
Hiermit kann ich es nicht nachvollziehen (Delphi 6 Professional, Update Pack 2, RTL Update 3)
Delphi-Quellcode:
unit Unit1;
interface
uses
Classes,
Forms;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
Windows;
function ThreadFunc(Parameter: Pointer): Integer;
var
Event: THandle;
begin
Event := CreateEvent( nil, True, False, nil);
if 0 = Event then
MessageBox(0, ' Event not created!', ' Test', MB_ICONERROR)
else
try
// Shouldn't return...
WaitForSingleObject(Event, INFINITE);
finally
CloseHandle(Event);
end;
MessageBox(0, ' Leaving ThreadFunc', ' Test', MB_ICONINFORMATION);
Result := 0;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Thread: THandle;
ThreadId: DWORD;
begin
Thread := BeginThread( nil, 0, ThreadFunc, nil, 0, ThreadId);
if 0 = Thread then
MessageBox(0, ' Thread not created!', ' Test', MB_ICONERROR)
else
try
MessageBox(0, ' Thread created.', ' Test', MB_ICONINFORMATION);
finally
CloseHandle(Thread);
end;
end;
end.
|
|
Zitat
|