以下是一个简单的示例,展示了如何在C# WinForms中创建一个按钮的异步事件,并使用Label控件来显示事件执行的时长。
首先,确保你已经在你的项目中添加了一个Button和一个Label控件。假设按钮的名称是btnAsync,标签的名称是lblDuration。
btnAsync
lblDuration
然后,在你的Form类中,添加以下代码:
using System; using System.Threading.Tasks; using System.Windows.Forms; public partial class MainForm : Form { public MainForm() { InitializeComponent(); btnAsync.Click += BtnAsync_Click; // 注册按钮点击事件 } private async void BtnAsync_Click(object sender, EventArgs e) { // 开始计时 Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 模拟异步操作 await DoSomeAsyncWork(); // 停止计时并更新Label显示时长 stopwatch.Stop(); lblDuration.Text = $"操作耗时: {stopwatch.ElapsedMilliseconds} 毫秒"; } private async Task DoSomeAsyncWork() { // 这里可以替换为任何异步操作,例如网络请求或文件读写等 await Task.Delay(2000); // 模拟耗时操作,延迟2秒 } }
在这个示例中,我们使用了System.Diagnostics.Stopwatch来测量事件执行的时长。当按钮被点击时,异步方法DoSomeAsyncWork会被调用,并且在该方法完成之前,不会阻塞UI线程。在异步操作完成后,我们会更新Label控件的文本,显示操作耗时。
System.Diagnostics.Stopwatch
DoSomeAsyncWork
请确保你的项目引用了System.Diagnostics命名空间,以便使用Stopwatch类。
System.Diagnostics
Stopwatch