public void PerformAlgorithmAsync(GraphAlgorithmParameters parameters)
        {
            IsPerforming = true;
            Parameters   = parameters;

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

                Performed?.Invoke(Result);

                IsPerforming = false;
                IsPerformed  = true;
            });
            _algorithmThread.Start();
        }
 protected abstract GraphAlgorithmResult PerformAlgorithm(GraphAlgorithmParameters parameters);