Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
Delphi 12 Athens
|
AW: DEB DelphiEventBus vs. System.Messaging.TMessageManager
12. Mai 2016, 10:22
Und so geht es asynchron aus dem Hauptthread - auf Wunsch auch mit Verzögerung:
Delphi-Quellcode:
uses
System.SysUtils,
System.Classes,
System.Messaging,
System.Threading;
type
TMessageManagerHelper = class helper for TMessageManager
procedure SendMessageAsynch(const Sender: TObject; AMessage: TMessage; ADelayMS: Cardinal = 0; ADispose: Boolean = True); overload;
procedure SendMessageAsynch(const Sender: TObject; AMessage: TMessage; ADispose: Boolean = True); overload;
end;
procedure TMessageManagerHelper.SendMessageAsynch(const Sender: TObject; AMessage: TMessage; ADelayMS: Cardinal;
ADispose: Boolean);
begin
TTask.Run(
procedure
begin
if ADelayMS > 0 then begin
Sleep(ADelayMS);
end;
TThread.Queue(nil,
Self.SendMessage(Sender, AMessage, ADelayMS);
end);
end;
procedure TMessageManagerHelper.SendMessageAsynch(const Sender: TObject; AMessage: TMessage; ADispose: Boolean);
begin
SendMessageAsynch(Sender, AMessage, 0, ADispose);
end;
|
|
Zitat
|