protected internal override void After() { lock (this) { if (null != _thunk && !_thunk.Done) { _thunk.cancel(true); } _thunk = null; base.After(); } }
internal virtual Resource StartPrinting() { ScheduledExecutorService timer = Executors.newSingleThreadScheduledExecutor(); //JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET: //ORIGINAL LINE: java.util.concurrent.ScheduledFuture<?> timerFuture = timer.scheduleAtFixedRate(this::printOnNextUpdate, 0, interactive ? 100 : 5_000, java.util.concurrent.TimeUnit.MILLISECONDS); ScheduledFuture <object> timerFuture = timer.scheduleAtFixedRate(this.printOnNextUpdate, 0, _interactive ? 100 : 5_000, TimeUnit.MILLISECONDS); return(() => { timerFuture.cancel(false); timer.shutdown(); try { timer.awaitTermination(10, TimeUnit.SECONDS); } catch (InterruptedException) { } Done(); PrintProgress(); }); }
public override void Stop() { TickFuture.cancel(true); Scheduler.shutdownNow(); }