gpt4 book ai didi

multithreading - Delphi线程

转载 作者:行者123 更新时间:2023-12-03 19:32:48 25 4
gpt4 key购买 nike

我需要在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;

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

RunThread, 1

RunThread, 2. ThreadID: ...



但是 ThreadFunc没有日志输出。

为了执行实际的线程功能( ThreadFunc),我应该如何更改此代码?

最佳答案

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

关于multithreading - Delphi线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12475395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com