Exemple #1
0
        /// <summary>
        ///     Асинхронно выполняем действие и запускаем событие в GUI потоке
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void OnPerform(object sender, ElapsedEventArgs e)
        {
            _timer.Stop();
            var result = await Task.Run(() => _action(_param));

            _sync.Post(state => Performed?.Invoke(this, result), null);
        }
        public void PerformAlgorithmAsync(GraphAlgorithmParameters parameters)
        {
            IsPerforming = true;
            Parameters   = parameters;

            _algorithmThread = new Thread(() =>
            {
                Result = PerformAlgorithm(parameters);

                Performed?.Invoke(Result);

                IsPerforming = false;
                IsPerformed  = true;
            });
            _algorithmThread.Start();
        }