Guest User

signal from pipeline to consumer

a guest
May 20th, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.76 KB | None | 0 0
  1. public class SomePipeline
  2. {
  3.     public bool Finished { get; set; }
  4.     private EventWaitHandle _finishedSignal = new AutoResetWaitHandle("PipelineFinishedSignal");
  5.  
  6.     public void FireFinished() { _finishedSignal.Set(); }
  7. }
  8.  
  9. public class SomeConsumer
  10. {
  11.     private IEnumerable<SomePipeline> _myPipelines;
  12.     private Thread _threadWaitingForPipelines = new Thread(new ThreadStart(() =>
  13.     {
  14.         var _finishedSignal = new AutoResetWaitHandle("PipelineFinishedSignal");
  15.         while(_finishedSignal.WaitOne(5000)) // waits for the signal to fire up to 5 seconds then checks it's pipelines for being finished
  16.         {
  17.             if (_myPipelines.All(pipeline => pipeline.Finished))
  18.                 FireAllPipelinesAreFinished();
  19.         }
  20.     }));
  21. }
Advertisement
Add Comment
Please, Sign In to add comment