internal Session StartCommunicationLoop() { Task.Run((() => { Debug.WriteLine("Sleep Start"); Thread.Sleep(5000); Debug.WriteLine("Sleep End"); SessionDestroyed?.Invoke(this, Device); Dispose(); })); return(this); }
public void Destroy(EventArgs e) { //trigger event SessionDestroyed.Invoke(this, e); DataService dataService = services.GetRequiredService <DataService>(); //remove from data list. dataService.sessions.Remove(this); //remove sessionAccounts from dictionary from foreach (SessionAccount sessionAccount in user) { dataService.sessionAccounts.Remove(sessionAccount.userAccount.userID); } UnbindEvents(); }
private void DestroySession(DestroySession destroySession) { logger.Info("Destroy session (Session Id: {0})", sessionId); // Console.WriteLine("Destroy session (Session Id: {0})", sessionId); // var releaseLock = new ReleaseLock(sessionId, Self, ActorRefs.Nobody); // SalesOrderCollectionActor.Tell(releaseLock); if (!Sender.IsNobody()) { var sessionDestroyed = new SessionDestroyed(sessionId); Sender.Tell(sessionDestroyed); } Context.Stop(Self); }
/// <summary> /// Called whenever the <see cref="Session"/> has been destroyed. /// </summary> /// <remarks> /// The <see cref="Session"/> can be destroyed by calling <see cref="DestroySession"/>. /// </remarks> protected virtual void OnSessionDestroyed() { SessionDestroyed?.Invoke(this, EventArgs.Empty); }