如何计算使用DateTime传递了多少时间?

Dan*_*est 2 c# winforms

我有一个启动操作的按钮单击事件:

private void Diagnose_Click(object sender, EventArgs e)
        {
            processfinish = false;
            timer2.Enabled = true;
            timerCount = 0;
            count = 0;
            countBack = 5;
            CreateZip.Enabled = false;
            DriverVerifier.Enabled = false;
            Diagnose.Enabled = false;
            Diagnose.Text = "PROCESSING PLEASE WAIT";
            if (this.backgroundWorker1.IsBusy == false)
            {
                this.backgroundWorker1.RunWorkerAsync();
            }
            Logger.Write("***** OPERATION STARTED *****");
        }
Run Code Online (Sandbox Code Playgroud)

并完成了背景工作者的活动:

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {  
                processfinish = true;
                Logger.Write("***** OPERATION ENDED *****");
        }
Run Code Online (Sandbox Code Playgroud)

并且timer1 tick事件在到达已完成的事件时开始工作:

private void timer1_Tick(object sender, EventArgs e)
        {
            count++;
            Diagnose.Text = "PROCESS HAS FINISHED" + "  " + countBack--;
            if (count == 6)
            {
                Diagnose.Text = "COLLECT INFORMATION";
                Diagnose.Enabled = true;
                CreateZip.Enabled = true;
                ViewLogFile.Enabled = true;
                DriverVerifier.Enabled = true;
                timer1.Enabled = false;
            }
        }
Run Code Online (Sandbox Code Playgroud)

我想在我的Logger文本文件中看到如下内容:

Logger.Write("Operation Time Was: " + timepassed);
Run Code Online (Sandbox Code Playgroud)

并且timepasssed将显示分钟和秒,例如:

营业时间是:05:21

lc.*_*lc. 6

只需使用一个StopWatch.Start()它开始计时,Stop()它完成后,然后得到Elapsed时间并格式化它.