コード例 #1
0
        private async void evoEngine_Work()
        {
            _evoEngine = new Evo2Engine();

            evoEngine_SetPause(_pause);
            evoEngine_SetParam();

            _evoEngine.OnGeneration_Started   += evoEngine_OnGenerationStarted;
            _evoEngine.OnGeneration_Completed += evoEngine_OnGenerationCompleted;
            _evoEngine.OnIteration_Completed  += evoEngine_OnIterationCompleted;

            _tokenSource = new CancellationTokenSource();
            CancellationToken token = _tokenSource.Token;

            Task <EGrid> task = null;
            EGrid        eGrid;
            string       message = "";


            try
            {
                task = Task <EGrid> .Factory.StartNew(() => _evoEngine.Work(token), token);

                eGrid = await task;
            }
            catch (OperationCanceledException)
            {
                //cancelled = true;
            }
            catch (Exception ex)
            {
                message = string.Format("error: {0}", ex.Message);
            }

            if (!task.IsFaulted)
            {
                message = (task.IsCanceled ? "cancel" : "finish");
            }


            slblStatus.Text = message;


            _evoEngine   = null;
            _tokenSource = null;

            btnStart.Enabled = false;
            btnPause.Enabled = false;
        }
コード例 #2
0
 public FormDebug(Evo2Engine evoEngine)
 {
     InitializeComponent();
     _evoEngine = evoEngine;
 }