我正在寻找一个可中断的、延迟的事件,我希望它已经是 Spring4D 的一部分,或者在那里很容易实现。
无论如何,实现这一目标的最佳方法是什么?
可能事件不会是正确的地方。
基本上在寻找类似的东西
Event.InvokeDelayed(1000, nil); 和 Event.InvokeCancel;
procedure TTestMulticastEvent.Test;
var
e: Event<TNotifyEvent>;
begin
e.Add(HandlerA);
e.Invoke(nil); // Yes, this is the normal behaviour
// But would this make sense in Events,
// or better use other concept, like TTask.IdleWorker, e.g. ?
e.InvokeDelayed(1000, nil); // waits 1sec
Sleep(100); // Interrupts after 100ms
e.InvokeCancel; // Prevent future Event, started earlier
end;
也许我监督了一些已经可以在 S4D 中解决这个任务的东西。
罗洛