title: Cancel a scheduled task
body: <p>I have a Windows Delphi application that receives events, on each of these events i'd like to run a task in a parallel way (so i can be ready for the following event). There is many way to do this through omnithread library's abstractions.</p>
  
  <p>The issue is that part of my code needs to be executed immediately after the reception of the event (basically to "decode" the events params), and another part needs to be executed a few seconds after only under the condition of nothing new happend for the same context.
  This behaviour should respond to "only store this new value if it last longer than 3000ms, otherwise just cancel it".
  So what I need would be to "cancel" a running task (the one waiting 3000ms) if a new event arrives with the same context.
  I cannot use a pipeline abstraction because when the first stage ends, it automatically fills the second stage queue without asking me if i want to cancel it or not.</p>
  
  <p>Is that possible?</p>
  
  <p>Thank you.</p>