Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SomePipeline
- {
- public bool Finished { get; set; }
- private EventWaitHandle _finishedSignal = new AutoResetWaitHandle("PipelineFinishedSignal");
- public void FireFinished() { _finishedSignal.Set(); }
- }
- public class SomeConsumer
- {
- private IEnumerable<SomePipeline> _myPipelines;
- private Thread _threadWaitingForPipelines = new Thread(new ThreadStart(() =>
- {
- var _finishedSignal = new AutoResetWaitHandle("PipelineFinishedSignal");
- while(_finishedSignal.WaitOne(5000)) // waits for the signal to fire up to 5 seconds then checks it's pipelines for being finished
- {
- if (_myPipelines.All(pipeline => pipeline.Finished))
- FireAllPipelinesAreFinished();
- }
- }));
- }
Advertisement
Add Comment
Please, Sign In to add comment