public void LoadTilesAndFindTiles() { var threadCount = 500; var loadWork = new WorkTimer(threadCount); var findWork = new WorkTimer(threadCount); loadWork.TimeWork( i => new { TileIndex = new TileIndex(i % 10, i / 10, "1"), Image = new [] { (byte)i } }, args => _cache.Add(args.TileIndex, args.Image)); loadWork.WaitForTestsToComplete(); findWork.TimeWork(i => new TileIndex(i % 10, i / 10, "1"), index => _cache.Find(index)); findWork.WaitForTestsToComplete(); Console.WriteLine("Total FileCache.Add time is {0}ms", loadWork.TotalTime); Console.WriteLine("Average FileCache.Add time is {0}ms", loadWork.TotalTime / threadCount); Console.WriteLine("Max FileCache.Add time is {0}ms", loadWork.MaxTime); Console.WriteLine("Min FileCache.Add time is {0}ms", loadWork.MinTime); Console.WriteLine("Total FileCache.Find time is {0}ms", findWork.TotalTime); Console.WriteLine("Average FileCache.Find time is {0}ms", findWork.TotalTime / threadCount); Console.WriteLine("Max FileCache.Find time is {0}ms", findWork.MaxTime); Console.WriteLine("Min FileCache.Find time is {0}ms", findWork.MinTime); }
protected override void Handle(StartProjectTaskCommand request) { if (TaskRecorder.HasActiveTask) { DuplicateTaskValidator taskValidator = new DuplicateProjectTaskValidator(TaskRecorder.ActiveTask, request.ProjectDto.ID, request.ProjectStageDto.ID, request.WorksetDto.ID, request.IsAddCost, request.IsMistake); taskValidator.ValidateDuplicate(); } if (TaskService.AskBeforeStartNewTaskResult() == DialogResult.No) { return; } DateTime currentTime = Database.GetCurrentTime(); if (TaskRecorder.HasActiveTask) { TaskRepository.Finish(TaskRecorder.ActiveTask, currentTime); TaskRecorder.StopActiveTask(currentTime); } Project project = ProjectRepository.Load(request.ProjectDto.ID); ProjectStage projectStage = ProjectStageRepository.Load(request.ProjectStageDto.ID); Workset workset = WorksetRepository.Load(request.WorksetDto.ID); ProjectTask newProjectTask = TaskFactory.CreateProjectTask(TaskRepository.NextIdentity(), project, projectStage, workset, request.IsAddCost, request.IsMistake); TaskRepository.Save(newProjectTask, currentTime); TaskRecorder.StartNewTask(newProjectTask, currentTime); WorkTimer.Start(); }
public void StartCountdown(Action OnCountdown, Action OnWork, Action OnRest) { MinutesToGo = Duration; OnSecondElapsed += (obj, args) => { SecondsToGo = SecondsToGo <= 0 ? 59 : SecondsToGo - 1; MinutesToGo = MinutesToGo - (SecondsToGo == 59 ? 1 : 0); OnCountdown(); if (Elapsed) { WorkTimer.Stop(); if (Mode == PomodoroMode.Work) { OnRest(); Mode = PomodoroMode.Rest; MinutesToGo = Intermission; WorkTimer.Start(); } else { OnWork(); PomodoroUnit.AnythingRunning = false; } } }; WorkTimer.Elapsed += OnSecondElapsed; WorkTimer.Start(); }
public static void Pause() { MoveTimer.Stop(); GenCarTimer.Stop(); WorkTimer.Stop(); LightsTimer.Stop(); }
public void StopCountdown() { WorkTimer.Stop(); MinutesToGo = Duration; SecondsToGo = 0; Mode = PomodoroMode.Work; WorkTimer.Elapsed -= OnSecondElapsed; }
public static void Start() { MoveTimer.Start(); PMoveTimer.Start(); GenCarTimer.Start(); WorkTimer.Start(); GenPeopleTimer.Start(); LightsTimer.Start(); TrafficLight.CreateLight(); IsReady = true; }
public static void Start() { MoveTimer.Start(); GenCarTimer.Start(); WorkTimer.Start(); LightsTimer.Start(); CurrentRoad = new Road(1, 1, 1, 1); CurrentRoadTransit = new RoadTransit(false, false, false, false, 1, 1, 1, 1); TrafficLight.CreateLight(); IsReady = true; }
public void StopWorkTimer() { WorkTimer.Stop(); SecondsLeft = 0; labelTimer.Text = "Process stopped"; labelTimer.ForeColor = System.Drawing.Color.Red; labelHourOrMinute.Text = string.Empty; progressBar.Value = 0; buttonPause.Enabled = false; buttonStart.Enabled = true; ResetButtonsToDefault(); }
private void SecondTimer_Tick(object sender, EventArgs e) { int minutes = int.Parse(WorkTimeLabel.Text.Substring(0, minChar)); int seconds = int.Parse(WorkTimeLabel.Text.Substring(minChar + 1)); if (minutes != 0 || seconds != 0) { if (seconds != 0) { seconds -= 1; if (seconds < 10) { WorkTimeLabel.Text = $"{minutes}:0{seconds}"; } else { WorkTimeLabel.Text = $"{minutes}:{seconds}"; } } else { seconds = 59; minutes -= 1; WorkTimeLabel.Text = $"{minutes}:{seconds}"; } } else { MessageBox.Show("You have completed your work session! For your hard work, have a little break.", "Timeout", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); WorkTimer.Stop(); SecondTimer.Stop(); int breakmins = (int)BreakNumericUpDown.Value; if (breakmins < 10) { breakChar = 1; WorkTimeLabel.Text = $"{breakmins}:00"; breakTimer.Start(); // gameForm.Show(); } else if (breakmins > 10 && breakmins < 99) { breakChar = 2; WorkTimeLabel.Text = $"{breakmins}:00"; breakTimer.Start(); //gameForm.Show(); } else { MessageBox.Show("Stop being lazy! Dont take such a long break."); } } }
private void StopTimer() { if (WorkTimer != null) { WorkTimer.Stop(); WorkTimer.TimerUpdated -= Timer_Update; WorkTimer.TimerStarted -= Timer_Start; WorkTimer.TimerStopped -= Timer_Stop; WorkTimer.TimerPaused -= Timer_Pause; WorkTimer.Dispose(); WorkTimer = null; } }
public static void Stop() { Car.Clear(); Deleter.Clear(); MoveTimer.Stop(); LightsTimer.Stop(); GenCarTimer.Stop(); WorkTimer.Stop(); CarCount.Text = "0"; CurrentlyCarCount.Text = "0"; WorkTime.Text = "0 c"; Cpm.Text = "0"; WorkTm = 0; UserPanel.ResetBackColor(); UserPanel.Invalidate(); }
private void StartWorkTimer() { if (firstStart) { SecondsLeft = MyDateTimeHandler.GetSecondsToWork(numericUpDownHours.Value.ToString(), numericUpDownMinutes.Value.ToString(), numericUpDownSeconds.Value.ToString()); WorkTimer.Tick += new EventHandler(WorkTimer_Tick); StartTime = DateTime.Now; EndTime = DateTime.Now.AddSeconds(SecondsLeft); progressBar.Maximum = Convert.ToInt32(SecondsLeft); } labelPredictTime.Text = "Expected end of Work: " + EndTime.ToShortTimeString() + " " + MyDateTimeHandler.GetAM(EndTime); buttonStart.Enabled = false; buttonPause.Enabled = true; labelTimer.ForeColor = System.Drawing.Color.Black; WorkTimer.Interval = 1000; WorkTimer.Start(); }
private void ResetButtonsToDefault() { WorkTimer.Stop(); SecondsLeft = MyDateTimeHandler.GetSecondsToWork(numericUpDownHours.Value.ToString(), numericUpDownMinutes.Value.ToString(), numericUpDownSeconds.Value.ToString()); buttonStart.Enabled = true; progressBar.Value = 0; currentWeek = MyTimeTable.GetWeekOfYear(DateTime.Now); labelPredictTime.Text = "Expected end of Work: "; labelStartTime.Text = "Started work "; labelTime.Text = MyDateTimeHandler.TimeString + " Uhr " + MyDateTimeHandler.GetAM(); labelDate.Text = "It's " + DateTimeHandler.DateString; if (firstStart) { buttonStart.Enabled = false; WorkTimer.Interval = 1000; WorkTimer.Enabled = true; } }
private void startButton_Click(object sender, EventArgs e) //Starts the app. { if (ProcessesListBox.SelectedItem != null) { int minutes = (int)WorkNumericUpDown.Value; if (minutes < 10) { minChar = 1; } else if (minutes > 10 && minutes < 99) { minChar = 2; } else if (minutes > 99) { minChar = 3; } if (startButton.Text.Contains("Start")) { WorkTimer.Start(); SecondTimer.Start(); startButton.Text = "Stop Working"; refreshButton.Enabled = false; } else { WorkTimer.Stop(); SecondTimer.Stop(); breakTimer.Stop(); startButton.Text = "Start Working"; refreshButton.Enabled = true; } WorkTimeLabel.Text = $"{minutes}:00"; } else { MessageBox.Show("You must select the window you will be working on."); } }
private void FunctionButton_Click(object sender, EventArgs e) { if (((MouseEventArgs)e).Button == MouseButtons.Left) { if (ModeTimer != TimerMode.Stopped) { if (ModeTimer == TimerMode.Started) { WorkTimer.Pause(); } else if (ModeTimer == TimerMode.Paused) { InitializeSettingsAndStartTimer(Settings.Default.StartTime, TimerMode.Started); } TimerText.HideSelection = true; ((Control)sender).Focus(); } } }
protected override void Handle(StopTaskCommand request) { ActiveTaskValidator validator = new ActiveTaskValidator(TaskRecorder.HasActiveTask); validator.CheckIfAnyTaskIsRunning(); if (TaskService.AskBeforeStopActiveTaskResult() == DialogResult.No) { return; } BaseTask activeTask = TaskRecorder.ActiveTask; DateTime endTime = Database.GetCurrentTime(); TaskRepository.Finish(activeTask, endTime); TaskRecorder.StopActiveTask(endTime); WorkTimer.Stop(); }
public void LoadTilesAndFindTiles() { var threadCount = 500; var loadWork = new WorkTimer(threadCount); var findWork = new WorkTimer(threadCount); loadWork.TimeWork( i => new { TileIndex = new TileIndex(i % 10, i / 10, "1"), Image = new byte[] { (byte)i } }, args => _cache.Add(args.TileIndex, args.Image)); loadWork.WaitForTestsToComplete(); findWork.TimeWork(i => new TileIndex(i % 10, i / 10, "1"), index => _cache.Find(index)); findWork.WaitForTestsToComplete(); Console.WriteLine("Total FileCache.Add time is {0}ms", loadWork.TotalTime); Console.WriteLine("Average FileCache.Add time is {0}ms", loadWork.TotalTime / threadCount); Console.WriteLine("Max FileCache.Add time is {0}ms", loadWork.MaxTime); Console.WriteLine("Min FileCache.Add time is {0}ms", loadWork.MinTime); Console.WriteLine("Total FileCache.Find time is {0}ms", findWork.TotalTime); Console.WriteLine("Average FileCache.Find time is {0}ms", findWork.TotalTime / threadCount); Console.WriteLine("Max FileCache.Find time is {0}ms", findWork.MaxTime); Console.WriteLine("Min FileCache.Find time is {0}ms", findWork.MinTime); }
private void breakTimer_Tick(object sender, EventArgs e) { int minutes = int.Parse(WorkTimeLabel.Text.Substring(0, breakChar)); int seconds = int.Parse(WorkTimeLabel.Text.Substring(breakChar + 1)); if (minutes != 0 || seconds != 0) { if (seconds != 0) { seconds -= 1; if (seconds < 10) { WorkTimeLabel.Text = $"{minutes}:0{seconds}"; } else { WorkTimeLabel.Text = $"{minutes}:{seconds}"; } } else { seconds = 59; minutes -= 1; WorkTimeLabel.Text = $"{minutes}:{seconds}"; } } else { // gameForm.Close(); MessageBox.Show("Break time is over. Get back to work!", "Timeout", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); breakTimer.Stop(); WorkTimeLabel.Text = $"{(int)WorkNumericUpDown.Value}:00"; WorkTimer.Start(); SecondTimer.Start(); } }
public Repository() { Timer = new WorkTimer(); RepSaveData = new RepositorySaveData(this); }
/// <summary> /// После успешной регистрации или входа /// </summary> public static void InitConnected() { try { Loger.Log("Client InitConnected()"); Data = new ClientData(); TimersStop(); Timers = new WorkTimer(); TimerReconnect = new WorkTimer(); var connect = SessionClient.Get; var serverInfo = connect.GetInfo(ServerInfoType.Full); ServerTimeDelta = serverInfo.ServerTime - DateTime.UtcNow; SetFullInfo(serverInfo); Loger.Log("Client ServerName=" + serverInfo.ServerName); Loger.Log("Client ServerVersion=" + serverInfo.VersionInfo + " (" + serverInfo.VersionNum + ")"); Loger.Log("Client IsAdmin=" + serverInfo.IsAdmin + " Seed=" + serverInfo.Seed + " NeedCreateWorld=" + serverInfo.NeedCreateWorld + " DelaySaveGame=" + Data.DelaySaveGame + " DisableDevMode=" + Data.DisableDevMode); Loger.Log("Client Grants=" + serverInfo.My.Grants.ToString()); if (serverInfo.IsModsWhitelisted && !CheckFiles()) { var msg = "OCity_SessionCC_FilesUpdated".Translate(); //Не все файлы прошли проверку, надо инициировать перезагрузку всех модов Disconnected(msg, () => ModsConfig.RestartFromChangedMods()); return; } if (MainHelper.VersionNum < serverInfo.VersionNum) { Disconnected("OCity_SessionCC_Client_UpdateNeeded".Translate() + serverInfo.VersionInfo); return; } //создаем мир, если мы админ if (serverInfo.IsAdmin && serverInfo.Seed == "") { Loger.Log("Client InitConnected() IsAdmin"); var form = new Dialog_CreateWorld(); form.PostCloseAction = () => { if (!form.ResultOK) { Disconnected("OCity_SessionCC_MsgCanceledCreateW".Translate()); return; } GameStarter.SetMapSize = int.Parse(form.InputMapSize); GameStarter.SetPlanetCoverage = float.Parse(form.InputPlanetCoverage) / 100f; GameStarter.SetSeed = form.InputSeed; GameStarter.SetDifficulty = int.Parse(form.InputDifficulty); GameStarter.SetScenario = GetScenarioDefault(); GameStarter.AfterStart = CreatingServerWorld; GameStarter.GameGeneration(); }; Find.WindowStack.Add(form); return; } if (serverInfo.NeedCreateWorld) { CreatePlayerWorld(serverInfo); return; } LoadPlayerWorld(); } catch (Exception ext) { Loger.Log("Exception InitConnected: " + ext.ToString()); } }
public Repository() { Timer = new WorkTimer(); }
/// <summary> /// После успешной регистрации или входа /// </summary> /// public static void InitConnected() { Loger.Log("Client InitConnected()"); Data = new ClientData(); TimersStop(); Timers = new WorkTimer(); var connect = SessionClient.Get; var serverInfo = connect.GetInfo(true); My = serverInfo.My; ServerTimeDelta = serverInfo.ServerTime - DateTime.UtcNow; Loger.Log("Client IsAdmin=" + serverInfo.IsAdmin + " Seed=" + serverInfo.Seed + " ExistMap=" + My.ExistMap); //создаем мир, если мы админ if (serverInfo.IsAdmin && serverInfo.Seed == "") { Loger.Log("Client InitConnected() IsAdmin"); var form = new Dialog_CreateWorld(); form.PostCloseAction = () => { if (!form.ResultOK) { Disconnected("OCity_SessionCC_MsgCanceledCreateW".Translate()); return; } GameStarter.SetMapSize = int.Parse(form.InputMapSize); GameStarter.SetPlanetCoverage = float.Parse(form.InputPlanetCoverage) / 100f; GameStarter.SetSeed = form.InputSeed; GameStarter.SetDifficulty = int.Parse(form.InputDifficulty); GameStarter.SetScenario = ScenarioDefault; GameStarter.AfterStart = CreatingWorld; GameStarter.GameGeneration(); }; Find.WindowStack.Add(form); return; } if (!My.ExistMap) { Loger.Log("Client InitConnected() ExistMap"); //создать поселение GameStarter.SetMapSize = serverInfo.MapSize; GameStarter.SetPlanetCoverage = serverInfo.PlanetCoverage; GameStarter.SetSeed = serverInfo.Seed; GameStarter.SetDifficulty = serverInfo.Difficulty; GameStarter.SetScenario = ScenarioDefault; GameStarter.AfterStart = CreatePlayerMap; GameStarter.GameGeneration(false); //выбор места на планете. Код из события завершения выбора параметров планеты Page_CreateWorldParams Loger.Log("Client InitConnected() ExistMap1"); Current.Game = new Game(); Current.Game.InitData = new GameInitData(); Current.Game.Scenario = GameStarter.SetScenario; Current.Game.Scenario.PreConfigure(); Current.Game.storyteller = new Storyteller(StorytellerDefOf.Cassandra , GameStarter.SetDifficulty == 2 ? DifficultyDefOf.Hard : GameStarter.SetDifficulty == 1 ? DifficultyDefOf.Medium : DifficultyDefOf.VeryEasy); Loger.Log("Client InitConnected() ExistMap2"); Current.Game.World = WorldGenerator.GenerateWorld( GameStarter.SetPlanetCoverage, GameStarter.SetSeed, GameStarter.SetOverallRainfall, GameStarter.SetOverallTemperature); Loger.Log("Client InitConnected() ExistMap3"); //после создания мира запускаем его обработку, загружаем поселения др. игроков UpdateWorldController.InitGame(); UpdateWorld(true); Loger.Log("Client InitConnected() ExistMap4"); var form = GetFirstConfigPage(); Find.WindowStack.Add(form); Loger.Log("Client InitConnected() ExistMap5"); MemoryUtility.UnloadUnusedUnityAssets(); Loger.Log("Client InitConnected() ExistMap6"); Find.World.renderer.RegenerateAllLayersNow(); Loger.Log("Client InitConnected() ExistMap7"); return; } Loger.Log("Client InitConnected() WorldLoad"); var worldData = connect.WorldLoad(); File.WriteAllBytes(SaveFullName, worldData.SaveFileData); Action loadAction = () => { LongEventHandler.QueueLongEvent(delegate { Current.Game = new Game { InitData = new GameInitData { gameToLoad = SaveName } }; GameLoades.AfterLoad = () => { GameLoades.AfterLoad = null; //Непосредственно после загрузки игры InitGame(); }; /* вместо этого сделал через гармонику * LongEventHandler.ExecuteWhenFinished(() => * { * var th = new Thread(() => * { * //не знаю как правильно привязаться к событию окончания загрузки мира * while (Current.Game == null || Current.Game.World == null || Find.WorldObjects == null) * { * Thread.Sleep(100); * Loger.Log("Sleep(100)"); * } * Thread.Sleep(100); * LongEventHandler.QueueLongEvent(delegate * { * //Непосредственно после загрузки игры * InitGame(); * }, "", false, null); * }); * th.IsBackground = true; * th.Start(); * }); */ }, "Play", "LoadingLongEvent", false, null); }; PreLoadUtility.CheckVersionAndLoad(SaveFullName, ScribeMetaHeaderUtility.ScribeHeaderMode.Map, loadAction); }