Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- List<WaitHandle> events = new List<WaitHandle>();
- for (int i = 0; i < 64; i++)
- {
- ManualResetEvent mre = new ManualResetEvent(false);
- ThreadPool.QueueUserWorkItem(
- delegate(object o)
- {
- Thread.Sleep(TimeSpan.FromMinutes(1));
- ((ManualResetEvent)o).Set();
- },mre);
- events.Add(mre);
- }
- WaitHandle.WaitAll(events.ToArray());
- int length = 10;
- ManualResetEvent[] waits = new ManualResetEvent[length];
- for ( int i = 0; i < length; i++ ) {
- waits[i] = new ManualResetEvent( false );
- ThreadPool.QueueUserWorkItem( (obj) => {
- try {
- } finally {
- waits[i].Set();
- }
- } );
- }
- for ( int i = 0; i < length; i++ ) {
- if ( !waits[i].WaitOne() )
- break;
- }
Add Comment
Please, Sign In to add comment