你的想法很重要-大家都来谈 (C)Copyright 2012 by WeiPt

c#写一个WINFORM的多线程操作

  • 以下是一个简单的示例,展示了如何在C# WinForms中创建一个按钮的异步事件,并使用Label控件来显示事件执行的时长。

    首先,确保你已经在你的项目中添加了一个Button和一个Label控件。假设按钮的名称是btnAsync,标签的名称是lblDuration

    然后,在你的Form类中,添加以下代码:

    csharp
    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类。

posted @   weipt  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

你的想法很重要-大家都来谈 (C)Copyright 2012 by WeiPt
点击右上角即可分享
微信分享提示