public async void LoadInBackground(string gcodePathAndFileName, Action <double, string> progressReporter)
        {
            this.FileNameAndPath = gcodePathAndFileName;

            loadedGCode = await GCodeFileLoaded.LoadInBackground(gcodePathAndFileName, progressReporter);

            // backgroundWorker_RunWorkerCompleted
            SetGCodeAfterLoad(loadedGCode);

            DoneLoading?.Invoke(this, null);
        }
        public void LoadInBackground(string gcodePathAndFileName)
        {
            this.FileNameAndPath = gcodePathAndFileName;
            backgroundWorker     = new BackgroundWorker();
            backgroundWorker.WorkerReportsProgress      = true;
            backgroundWorker.WorkerSupportsCancellation = true;

            backgroundWorker.ProgressChanged    += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged);
            backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);

            loadedGCode = null;
            GCodeFileLoaded.LoadInBackground(backgroundWorker, gcodePathAndFileName);
        }