如果我想暂停和恢复计时器,应该如何修改这个示例?
时间: 2024-09-12 11:11:26 浏览: 20
如果你想在C#中实现暂停和恢复计时器功能,通常你需要将计时器封装到一个单独的类中,并提供一个公共方法来控制它的状态。这里给出一个简化的例子,假设我们有一个名为`StopwatchTimer`的类:
```csharp
using System;
using System.Timers;
public class StopwatchTimer
{
private readonly Timer timer;
private bool isRunning;
public StopwatchTimer(int intervalInMilliseconds)
{
timer = new Timer(intervalInMilliseconds);
timer.Elapsed += OnElapsed;
}
public void Start()
{
if (!isRunning)
{
timer.Start();
isRunning = true;
}
}
public void Stop()
{
if (isRunning)
{
timer.Stop();
isRunning = false;
}
}
private void OnElapsed(object sender, ElapsedEventArgs e)
{
// 在这里处理每次计时器触发事件
// 如果你想停止这里的处理,只需要简单地改变 `isRunning` 的值,然后在 Start 和 Stop 中检查它
if (isRunning)
{
var elapsedTime = timer.ElapsedMilliseconds;
labelElapsedTime.Text = $"已运行时间: {elapsedTime}毫秒";
}
}
}
// 使用示例
private void buttonPauseResume_Click(object sender, EventArgs e)
{
var stopwatch = new StopwatchTimer(500); // 间隔500毫秒
stopwatch.Start();
if (stopwatch.isRunning) // 判断是否正在运行
{
stopwatch.Stop(); // 暂停
buttonPauseResume.Text = "继续"; // 更新按钮文本
}
else
{
stopwatch.Start(); // 继续
buttonPauseResume.Text = "暂停"; // 更新按钮文本
}
}
```
在这个例子中,当点击“暂停”按钮时,计时器会被停止,按钮文本变为“继续”。反之亦然。