private void submitJoinRunnable(CloseableExecutorService service, CountdownEvent startLatch, CountdownEvent latch) { CancellationTokenSource token = new CancellationTokenSource(); service.submit(CallableUtils.FromFunc <object>(() => { try { startLatch.Signal(); Console.WriteLine(startLatch.CurrentCount); int sleepTime = 100000; while (!token.Token.IsCancellationRequested && sleepTime >= 0) { sleepTime -= 100; if (Thread.CurrentThread.Join(100)) { break; } } if (token.Token.IsCancellationRequested) { Console.WriteLine("Stopped by cancel request"); } } finally { latch.Signal(); } return(null); }), token); }
private IFuture <object> submitJoinRunnable(CloseableExecutorService service, CountdownEvent startLatch) { CancellationTokenSource token = new CancellationTokenSource(); return(service.submit(CallableUtils.FromFunc <object>(() => { startLatch.Signal(); Console.WriteLine(startLatch.CurrentCount); Thread.CurrentThread.Join(); return null; }), token)); }
private void submitRunnable(CloseableExecutorService service, CountdownEvent startLatch, CountdownEvent latch) { CancellationTokenSource token = new CancellationTokenSource(); service.submit(CallableUtils.FromFunc<object>(() => { try { startLatch.Signal(); Console.WriteLine(startLatch.CurrentCount); int sleepTime = 100000; while (!token.Token.IsCancellationRequested && sleepTime >= 0) { sleepTime -= 100; Thread.Sleep(100); } if (token.Token.IsCancellationRequested) { Console.WriteLine("Stopped by cancel request"); } } finally { latch.Signal(); } return null; }), token); }
private IFuture<object> submitJoinRunnable(CloseableExecutorService service, CountdownEvent startLatch) { CancellationTokenSource token = new CancellationTokenSource(); return service.submit(CallableUtils.FromFunc<object>(() => { startLatch.Signal(); Console.WriteLine(startLatch.CurrentCount); Thread.CurrentThread.Join(); return null; }), token); }