我有一个通过 Delphi Tethering Components发送一些消息的应用程序。第一次调用TetheringManager1.AutoConnect()
时,它触发了 TTetheringManager.OnEndAutoConnect。但是当我第二次调用它时,它没有触发事件,尽管它发现并连接到其他新设备。
我需要知道它什么时候完成连接,因为我想知道什么时候向所有应用程序发送消息是安全的。
每次调用AutoConnect时,如何知道它何时完成?
这是我的代码,我改编给你看。
活动:
procedure TFTetheringTest.TetheringManager1EndAutoConnect(Sender: TObject);
begin
ConnectionFinished := True;
end;
调用-我将其改编并压缩到一个过程中,以便您了解背后的思想:
procedure TFTetheringTest.BtnSendMsgClick(Sender: TObject);
begin
ConnectionFinished := False;
TetheringManager1.AutoConnect();
repeat
Application.ProcessMessages;
until ConnectionFinished;
ConnectionFinished := False;
// the sending
for var I := 0 to TetheringAppProfileSender.ConnectedProfiles.Count - 1 do
begin
TetheringAppProfileSender.SendString(TetheringAppProfileSender.ConnectedProfiles.Items[I], 'msg', 'Test');
end;
end;
1条答案
按热度按时间wsewodh21#
经过反复试验,我找到了触发*OnEndAutoConnect*事件的解决方案。该解决方案是在调用AutoConnect之前取消所有配对的管理器的配对。
这是我发现的每次调用AutoConnect时触发事件的唯一方法。