请用C#生成一段代码:通过button控件的click事件触发计时,计时结果同时赋值给数组的第一个元素,10秒后对数组内新增加的第二个元素进行计时并赋值,两个元素的计时互不干扰
时间: 2024-10-16 14:08:31 浏览: 54
在C#中,你可以使用`System.Timers.Timer`类来实现这个需求。以下是一个简单的示例代码,展示如何通过Button的Click事件创建两个独立的计时器,并将它们的结果分别存储在数组中:
```csharp
using System;
using System.Windows.Forms;
using System.Timers;
public partial class Form1 : Form
{
private int[] timerValues = new int[2];
private Timer firstTimer;
private Timer secondTimer;
public Form1()
{
InitializeComponent();
// 创建第一个计时器,初始设置10秒后更新数组的第一个元素
firstTimer = new Timer(10000);
firstTimer.Elapsed += (sender, e) => timerValues[0] = DateTime.Now.Second;
firstTimer.Start();
// 添加按钮点击事件处理程序
button1.Click += Button_Click;
}
private void Button_Click(object sender, EventArgs e)
{
// 创建第二个计时器,只在第一个计时器结束后启动
if (firstTimer.Enabled)
return;
secondTimer = new Timer(10000);
secondTimer.Elapsed += (sender, e) => timerValues[1] = DateTime.Now.Second;
secondTimer.Start();
}
protected override void OnFormClosing(FormClosingEventArgs e)
{
// 在关闭窗口前停止所有计时器
if (firstTimer != null)
firstTimer.Stop();
if (secondTimer != null)
secondTimer.Stop();
base.OnFormClosing(e);
}
}
```
在这个代码中,我们首先初始化了一个包含两个元素的数组`timerValues`。然后,在窗体加载时启动第一个计时器。当用户点击按钮时,如果第一个计时器正在运行,则不做操作;否则,会启动第二个计时器。每个计时器都将在10秒后更新对应数组的位置,并在窗口关闭前自动停止。
阅读全文