private void CtlStart_Click(object sender, EventArgs e) { if (SaveConfig()) { ApplyChangesToStandingNetworks(); CancellationTokenSource = new CancellationTokenSource(); CancellationToken = CancellationTokenSource.Token; CtlMenuStart.Enabled = false; CtlMenuReset.Enabled = false; CtlMenuStop.Enabled = true; CtlMenuDeleteNetwork.Enabled = false; NetworksManager.PrepareModelsForRun(); NetworksManager.PrepareModelsForRound(); CtlInputDataPresenter.SetInputDataAndDraw(NetworksManager.Models.First()); NetworksManager.FeedForward(); // initialize state Round = 0; StartTime = DateTime.Now; DrawModels(NetworksManager.Models); WorkThread = new Thread(new ThreadStart(RunNetwork)); WorkThread.Priority = ThreadPriority.Highest; WorkThread.Start(); } }
private void CtlMenuStart_Click(object sender, RoutedEventArgs e) { if (SaveConfig()) { ApplyChangesToStandingNetworks(); CancellationTokenSource = new CancellationTokenSource(); CancellationToken = CancellationTokenSource.Token; CtlMenuStart.IsEnabled = false; CtlMenuReset.IsEnabled = false; CtlMenuStop.IsEnabled = true; CtlMenuDeleteNetwork.IsEnabled = false; NetworksManager.PrepareModelsForRun(); NetworksManager.PrepareModelsForRound(); CtlInputDataPresenter.SetInputDataAndDraw(NetworksManager.SelectedNetworkModel); NetworksManager.FeedForward(); // initialize state DrawNetwork(NetworksManager.SelectedNetworkModel, CtlOnlyWeights.IsOn, CtlOnlyChangedWeights.IsOn, CtlHighlightChangedWeights.IsOn); GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; GC.Collect(); GC.WaitForFullGCComplete(); Round = 0; StartTime = Stopwatch.StartNew(); RunNetworkThread = new Thread(new ParameterizedThreadStart(RunNetwork)) { Name = "RunNetwork", Priority = ThreadPriority.Highest }; RunNetworkThread.Start(new object[] { Processor.Proc1 }); TimeThread = new Thread(new ThreadStart(RunTimer)) { Name = "Timer", Priority = ThreadPriority.BelowNormal }; TimeThread.Start(); } }