Delphi线程化

DP_*_*DP_ 1 delphi multithreading delphi-2009

我需要在Delphi中启动一个线程并使用以下代码:

function ThreadFunc(tp: PThreadParams): Integer;
var
    I: Integer;
begin
    OutputDebugString(PChar('ThreadFunc, 1'));
    for I := 0 to 10000 do
    begin
        if (I MOD 100) = 0 then
        begin
                OutputDebugString(PChar('Sample Delphi DLL ' + IntToStr(I)));
        end;

    end;

    Dispose(tp);
end;

procedure RunThread;
var
tp : PThreadParams;
Thread : THandle;
ThreadID : Cardinal;
ExitCode : Cardinal;
begin
    New(tp);

    OutputDebugString(PChar('RunThread, 1'));

    Thread := BeginThread(nil, 0, @ThreadFunc, tp, 0, ThreadID);

    OutputDebugString(PChar('RunThread, 2. ThreadID: ' + IntToStr(ThreadID)));

    WaitForSingleObject(Thread, INFINITE);

    GetExitCodeThread(Thread, ExitCode);

    CloseHandle(Thread);
end;
Run Code Online (Sandbox Code Playgroud)

当我运行RunThread时,日志文件包含条目

RunThread,1

RunThread,2.ThreadID:...

但没有日志输出ThreadFunc.

我应该如何更改此代码以便执行实际的线程函数(ThreadFunc)?

Gol*_*rol 5

为什么不使用TThread?使实现线程变得非常容易.;-)