gpt4 book ai didi

delphi - Delphi TComPort WriteAsync

转载 作者:行者123 更新时间:2023-12-03 18:40:06 26 4
gpt4 key购买 nike

我正在尝试通过TComPort组件异步发送字符串,
但是所有内容都是同步发送的。
问题在于该应用将被阻止,并等待传输结束。

我的代码:

procedure TForm1.Button1Click(Sender: TObject);
var
sss: string;
i: Integer;
t: cardinal;
begin
sss:='';
for i := 0 to 100 do
begin
sss:= sss + '1';
end;

memo1.Lines.Add('Str len - ' + IntToStr(Length(sss)));

if self.MyPort1.Connected then
begin
InitAsync(Operation1);
try
self.MyPort1.WriteStrAsync(sss,Operation1);
t:= GetTickCount;
self.MyPort1.WaitForAsync(Operation1);
t:= GetTickCount - t;
finally
DoneAsync(Operation1);
end;
memo1.Lines.Add('Т - ' + IntToStr(t));
end;
end;

最佳答案

编写是异步的。但是在编写之后立即调用WaitForAsync会杀死所有异步操作。

如果需要确定是否已完成写入,请在下一次写入操作之前(或在需要完成写入的其他操作之前)进行WaitForAsync

通常-值得等待其他线程中重叠操作的完成或使用完成回调例程进行通知

关于delphi - Delphi TComPort WriteAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46170740/

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