private void StartProcess(string[] files)
        {
            AProgressBar.Value = 0;
            DropGrid.AllowDrop = false;
            ((Storyboard)Resources["StartStoryboard"]).Begin();

            ProcessThread = new Thread(() => {
                IsProcessing         = true;
                ProgressUpdateThread = new Thread(ProgressUpdateLoop);
                ProgressUpdateThread.Start();

                string message = ProcessUnit.Process(files);

                IsProcessing = false;

                Dispatcher.Invoke(() =>
                {
                    AProgressBar.Value = -1;
                    DropGrid.AllowDrop = true;
                    ((Storyboard)Resources["EndStoryboard"]).Begin();
                    MessageBox.Show(this, message);
                    ProcessFinished?.Invoke();
                });
            });
            ProcessThread.Start();
        }