Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }