private void step1()
        {
            var o2AssessmentDataItemsToProcess = new List <O2AssessmentData_OunceV6>();

            foreach (O2AssessmentData_OunceV6 o2AssessmentData in lbTargetSavedAssessmentFiles.Items)
            {
                o2AssessmentDataItemsToProcess.Add(o2AssessmentData);
            }

            btCreateTraces.Enabled = false;
            JoinTracesUtils.proccessLoadedFiles(o2AssessmentDataItemsToProcess, cbMakeLostSinksIntoSinks.Checked,
                                                (_dO2TraceBlock, _tvRawData) =>
            {
                dO2TraceBlock = _dO2TraceBlock;
                tvRawData     = _tvRawData;
                this.invokeOnThread(
                    () =>
                {
                    step2();
                    step3();
                    //btProcessLoadedFiles.Enabled = true;
                });
                return(true);
            });
        }
        private void btProcessLoadedFiles_Click(object sender, EventArgs e)
        {
            var o2AssessmentDataItemsToProcess = new List <O2AssessmentData_OunceV6>();

            foreach (O2AssessmentData_OunceV6 o2AssessmentData in lbTargetSavedAssessmentFiles.Items)
            {
                o2AssessmentDataItemsToProcess.Add(o2AssessmentData);
            }

            btProcessLoadedFiles.Enabled = false;
            JoinTracesUtils.proccessLoadedFiles(o2AssessmentDataItemsToProcess, cbMakeLostSinksIntoSinks.Checked,
                                                (_dO2TraceBlock, _tvRawData) =>
            {
                dO2TraceBlock = _dO2TraceBlock;
                tvRawData     = _tvRawData;
                this.invokeOnThread(
                    () =>
                    { btProcessLoadedFiles.Enabled = true;
                      laNumberOfTracesProcessed.Text = dO2TraceBlock.Count + " TraceBlock : " +
                                                       tvRawData.Nodes.Count + " Nodes"; });
                return(true);
            });
        }