C#窗体应用中,添加时间停顿,暂停运行,过一段时间后继续运行
时间: 2024-03-25 20:37:46 浏览: 200
在C#窗体应用程序中,可以使用`Thread.Sleep()`方法来实现时间停顿,即让程序暂停运行一段时间后再继续执行。具体实现如下:
```csharp
// 暂停运行 5 秒钟
Thread.Sleep(5000); // 单位为毫秒
```
上面的代码会使程序暂停运行 5 秒钟,然后再继续执行后续代码。
如果需要在程序运行过程中暂停运行一段时间后再继续执行,可以结合`ManualResetEvent`对象和`Thread.Sleep()`方法来实现。具体实现如下:
1. 在窗体类中定义一个`ManualResetEvent`对象,用于控制程序的暂停和继续执行:
```csharp
private ManualResetEvent signal = new ManualResetEvent(false);
```
2. 在需要暂停程序的地方,调用`signal.WaitOne()`方法,使程序阻塞,等待一段时间后继续执行:
```csharp
// 程序暂停 5 秒钟
signal.WaitOne(5000); // 单位为毫秒
```
3. 在窗体类中添加一个按钮控件,并在其`Click`事件处理程序中调用`signal.Set()`方法,使程序继续执行:
```csharp
// 按钮点击事件处理程序
private void button1_Click(object sender, EventArgs e)
{
// 继续执行程序
signal.Set();
}
```
完整的示例代码如下:
```csharp
public partial class Form1 : Form
{
private ManualResetEvent signal = new ManualResetEvent(false);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 继续执行程序
signal.Set();
}
private void button2_Click(object sender, EventArgs e)
{
// 程序暂停 5 秒钟
signal.WaitOne(5000); // 单位为毫秒
// 继续执行程序
MessageBox.Show("5 秒钟已经过去了!");
}
}
```
在上面的代码中,当用户点击“暂停”按钮时,程序会调用`signal.Reset()`方法,使程序暂停并等待一段时间后继续执行。当用户点击“继续”按钮时,程序会调用`signal.Set()`方法,使程序继续执行。
阅读全文