private void Worker(object cancellationToken) { try { var token = (CancellationToken)cancellationToken; while (!token.IsCancellationRequested) { using (var me = Process.GetCurrentProcess()) Console.WriteLine($"Worker: {DateTime.Now} - Hello, I am {me.ProcessName} ({me.Id}) invoked by {Environment.CommandLine}"); if (IsInteractive) { Console.Write("q to exit: "); var read = Console.ReadLine(); Console.WriteLine(" line read..."); if (token.IsCancellationRequested || read?.ToLowerInvariant() == "q") { break; } } else { Thread.Sleep(1000); } } Console.WriteLine("## Worker: thread ended by user"); Terminated?.Invoke(this, EventArgs.Empty); } catch (ThreadInterruptedException) { // This is used to force us out of the ReadLine call... Console.WriteLine("## Worker: thread interrupted by caller"); } }
public void Terminate() { OnTerminate(); Terminated?.Invoke(this); AnyComponentTerminated?.Invoke(this); }
private void Worker(object cancellationToken) { var token = (CancellationToken)cancellationToken; while (!token.IsCancellationRequested) { using (var me = Process.GetCurrentProcess()) Console.WriteLine($"Worker: {DateTime.Now} - Hello, I am {me.ProcessName} ({me.Id}) invoked by {Environment.CommandLine}"); if (IsInteractive) { var read = ReadLine.Read(token, "q to exit: "); ////Console.Write("q to exit: "); ////var read = ConsoleEx.ReadLine(token); // Cannot use the regular ReadLine here: it is blocking... Console.WriteLine($">line read: '{read}'"); if (token.IsCancellationRequested || read?.ToLowerInvariant() == "q") { break; } } else { Thread.Sleep(1000); } } Console.WriteLine("## Worker: thread ended by user"); Terminated?.Invoke(this, EventArgs.Empty); }
private MessageResult DoEndSession() { _cancel.Cancel(); _debugger.EndSession(DEBUG_END.ACTIVE_TERMINATE); Terminated?.Invoke(this, null); return MessageResult.Empty; }
private async Task Callback(object source, ActionEventArgs e) { if (Host.ShuttingDown) { return; } switch (e.ActionType) { case PluginActionType.SignalTerminate: if (Terminated == null) { break; } await Terminated.Invoke(this, EventArgs.Empty); break; case PluginActionType.RegisterMethod: if (!(e.Result is IAsyncRegistrar <ServerMessagedEventArgs>)) { break; } Host.RegisterMethod((IAsyncRegistrar <ServerMessagedEventArgs>)e.Result); break; case PluginActionType.SendMessage: if (!(e.Result is CommandEventArgs) || CommandRecieved == null) { break; } await CommandRecieved.Invoke(this, (CommandEventArgs)e.Result); break; case PluginActionType.Log: if (!(e.Result is string)) { break; } if (Log == null) { return; } await Log.Invoke(this, new BasicEventArgs((string)e.Result)); break; default: throw new ArgumentOutOfRangeException(); } }
private async Task OnTerminated(object source, EventArgs e) { if (Terminated == null) { return; } await Terminated?.Invoke(source, e); }
public void Terminate(string reason) { if (IsTerminated) { throw new ContractWasAlreadyTerminatedException(); } TerminationReason = reason ?? throw new ArgumentNullException(nameof(reason)); IsTerminated = true; Terminated?.Invoke(this, new ContractTerminatedEventArgs(reason)); }
private void ThreadMethod() { // Start the dispatcher of the thread and set the started event _dispatcher = Dispatcher.CurrentDispatcher; _dispatcher.BeginInvoke(new ThreadStart(() => _threadStarted.Set()), DispatcherPriority.Send); Dispatcher.Run(); Terminated?.Invoke(this, EventArgs.Empty); _threadStarted.Close(); }
private void Heartbeat(object state) { if (_heartbeatTimer == null) { return; } _heartBeatLostCounter = Interlocked.Increment(ref _heartBeatLostCounter); if (_heartBeatLostCounter > _maxHeartBeatLost) { Terminated?.Invoke(this, EventArgs.Empty); } }
public void Terminate() { if (IsRun) { IsRun = false; DestroyChildren(this); if (Terminated != null) { Terminated.Invoke(); } } _firedMessages.Clear(); }
private void Instance_Terminated(SessionHelperInstance instance, bool forced) { if (forced) { EventLog.WriteEntry($"SessionHelper terminated (SID={instance.SID}, PID={instance.PID}) = hung", EventLogEntryType.Error, 82); } instance.Terminated -= Instance_Terminated; instance.Started -= Instance_Started; lock (instances) { instances.Remove(instance); } Terminated?.Invoke(instance); }
private void InitializeWindow() { window = uiFactory.CreateBrowserWindow(control, settings, isMainInstance); window.Closing += () => Terminated?.Invoke(Id); window.AddressChanged += Window_AddressChanged; window.BackwardNavigationRequested += Window_BackwardNavigationRequested; window.DeveloperConsoleRequested += Window_DeveloperConsoleRequested; window.ForwardNavigationRequested += Window_ForwardNavigationRequested; window.ReloadRequested += ReloadRequested; window.ZoomInRequested += ZoomInRequested; window.ZoomOutRequested += ZoomOutRequested; window.ZoomResetRequested += ZoomResetRequested; window.UpdateZoomLevel(CalculateZoomPercentage()); window.Show(); logger.Debug("Initialized browser window."); }
internal void Initialize() { var contextMenuHandler = new ContextMenuHandler(); var displayHandler = new DisplayHandler(); var downloadLogger = logger.CloneFor($"{nameof(DownloadHandler)} {Id}"); var downloadHandler = new DownloadHandler(appConfig, settings, downloadLogger); var keyboardHandler = new KeyboardHandler(); var lifeSpanHandler = new LifeSpanHandler(); var requestHandler = new RequestHandler(appConfig); displayHandler.FaviconChanged += DisplayHandler_FaviconChanged; displayHandler.ProgressChanged += DisplayHandler_ProgressChanged; downloadHandler.ConfigurationDownloadRequested += DownloadHandler_ConfigurationDownloadRequested; keyboardHandler.ReloadRequested += ReloadRequested; keyboardHandler.ZoomInRequested += ZoomInRequested; keyboardHandler.ZoomOutRequested += ZoomOutRequested; keyboardHandler.ZoomResetRequested += ZoomResetRequested; lifeSpanHandler.PopupRequested += LifeSpanHandler_PopupRequested; control = new BrowserControl(contextMenuHandler, displayHandler, downloadHandler, keyboardHandler, lifeSpanHandler, requestHandler, url); control.AddressChanged += Control_AddressChanged; control.LoadingStateChanged += Control_LoadingStateChanged; control.TitleChanged += Control_TitleChanged; control.Initialize(); logger.Debug("Initialized browser control."); window = uiFactory.CreateBrowserWindow(control, settings, isMainInstance); window.Closing += () => Terminated?.Invoke(Id); window.AddressChanged += Window_AddressChanged; window.BackwardNavigationRequested += Window_BackwardNavigationRequested; window.DeveloperConsoleRequested += Window_DeveloperConsoleRequested; window.ForwardNavigationRequested += Window_ForwardNavigationRequested; window.ReloadRequested += ReloadRequested; window.ZoomInRequested += ZoomInRequested; window.ZoomOutRequested += ZoomOutRequested; window.ZoomResetRequested += ZoomResetRequested; window.UpdateZoomLevel(CalculateZoomPercentage()); logger.Debug("Initialized browser window."); }
/// <summary> /// /// </summary> /// <param name="et"></param> /// <param name="arg"></param> private void CompleteProcessing(EventEntry entry) { switch (entry.Type) { case EventType.Connecting: Connecting?.Invoke(this, ( int )entry.Argument); break; case EventType.Listening: Listening?.Invoke(this, ( int )entry.Argument); break; case EventType.Connected: Connected?.Invoke(this, ( int )entry.Argument); break; case EventType.Disconnected: Disconnected?.Invoke(this, ( int )entry.Argument); break; case EventType.Terminated: Terminated?.Invoke(this, EventArgs.Empty); break; case EventType.Sent: Sent?.Invoke(this, (Tuple <byte [], Message>)entry.Argument); break; case EventType.Received: Received?.Invoke(this, (Tuple <byte [], Message>)entry.Argument); break; case EventType.T3Timeout: T3Timeout?.Invoke(this, ( Message )entry.Argument); break; default: break; } }
private void OnEventArrived(object sender, System.Management.EventArrivedEventArgs e) { try { string eventName = e.NewEvent.ClassPath.ClassName; if (eventName.CompareTo("__InstanceCreationEvent") == 0) { // Started Started?.Invoke(this, e); } else if (eventName.CompareTo("__InstanceDeletionEvent") == 0) { // Terminated Terminated?.Invoke(this, e); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } }
internal void Terminate() { logger.Info($"Instance has terminated."); window.Close(); Terminated?.Invoke(Id); }
/// <summary> /// Called after the network termination. /// </summary> /// <param name="sender">The sender instance.</param> /// <param name="ev">The <see cref="TerminatedEventArgs"/> instance.</param> protected virtual void OnTerminated(object sender, TerminatedEventArgs ev) => Terminated?.Invoke(sender, ev);
private void Window_Closing() { logger.Info($"Instance has terminated."); control.Destroy(); Terminated?.Invoke(Id); }
public void Terminate() { Terminated?.Invoke(this); End(); }
private void Process_Exited(object sender, System.EventArgs e) { Terminated?.Invoke(process.ExitCode); }
private void Process_Terminated(int exitCode) { logger.Info($"Application instance has terminated with exit code {exitCode}."); FinalizeEvents(); Terminated?.Invoke(Id); }
/// <summary> /// 触发任务结束事件。 /// </summary> /// <param name="args">事件参数。。</param> protected void OnTerminate(TaskTerminateEventArgs args) { Terminated?.Invoke(this, args); }
/// <summary> /// Overrides this method if want to handle behavior when the application is terminated. /// If base.OnTerminate() is not called, the event 'Terminated' will not be emitted. /// </summary> /// <since_tizen> 3 </since_tizen> protected virtual void OnTerminate() { Terminated?.Invoke(this, EventArgs.Empty); }
protected virtual void OnTerminated() { DetectingTermination = false; Terminated?.Invoke(this, EventArgs.Empty); }
private void ConnectionTerminatedCallback(HeliosConnectionException reason, IConnection closedchannel) { Terminated?.Invoke(reason, closedchannel); }
/// <inheritdoc /> public virtual void Terminate() { IsTerminated = true; Terminated?.Invoke(this, CurrentStatus); }
protected void FireTerminated() { Terminated?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Invokes Terminated event /// </summary> public void Terminate() { Terminated?.Invoke(this, EventArgs.Empty); }
public void ConnectionTerminated(ClusterInbounConnection connection) { Terminated?.Invoke(this, new ClusterConnectionEventArgs(connection)); }
/// <summary> /// Terminates the session. /// </summary> private void HandleTerminate() { Terminated?.Invoke(this, EventArgs.Empty); }