在C#4.5的Windows窗体应用程序编程中,“使用System.Diagnostics.Stopwatch类来精确地测量长时间运行任务的持续时间”的示例代码。
时间: 2024-09-13 09:16:54 浏览: 57
在C# 4.5的Windows窗体应用程序中,你可以使用`System.Diagnostics.Stopwatch` 类来测量长时间运行任务的持续时间。下面是一个示例代码,展示了如何创建一个Stopwatch实例,开始计时,以及停止和获取计时信息:
```csharp
using System;
using System.Diagnostics;
public partial class Form1 : Form
{
private Stopwatch stopwatch;
public Form1()
{
InitializeComponent();
stopwatch = new Stopwatch();
}
private void buttonStart_Click(object sender, EventArgs e)
{
// 开始计时
stopwatch.Start();
labelStatus.Text = "任务正在执行...";
// 这里是你的长时间运行任务
DoSomeHeavyWork();
// 结束计时
stopwatch.Stop();
}
private void DoSomeHeavyWork()
{
// 为了演示,我们这里只是简单地睡眠一段时间
// 实际应用中可能会是数据库查询、文件I/O或其他耗时操作
Thread.Sleep(5000); // 睡眠5秒钟
// 假设任务完成了
// 可能会执行一些清理工作
}
private void buttonStop_Click(object sender, EventArgs e)
{
// 仅当按钮点击时才停止计时,防止意外停止
if (stopwatch.IsRunning)
{
stopwatch.Stop();
TimeSpan elapsedTime = stopwatch.Elapsed;
labelElapsedTime.Text = $"任务执行完毕,耗时: {elapsedTime.TotalMilliseconds}毫秒";
}
}
private void timer1_Tick(object sender, EventArgs e)
{
// 如果想要实时更新剩余时间,可以在定时器中查看剩余时间
double remainingMilliseconds = stopwatch.ElapsedMilliseconds / 1000;
progressBar.Value = (int)(remainingMilliseconds / 500);
}
}
```
在这个例子中,`buttonStart_Click` 用于启动计时,`DoSomeHeavyWork` 长时间运行任务,`buttonStop_Click` 或者定时器(例如上面的`timer1_Tick`)用于停止计时并显示结果。
阅读全文