C#基于事件异步模式的实现2(续)

1、代码

csharp 复制代码
private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.Add($"The thread id is {Thread.CurrentThread.ManagedThreadId}");

            BackgroundWorker worker = new BackgroundWorker();
            worker.DoWork += new DoWorkEventHandler((s1, s2) =>
            {
                Thread.Sleep(2000);
                ListBoxAcrossDomain(listBox1,$"The asynchronous thread id is {Thread.CurrentThread.ManagedThreadId}");
            });
            listBox1.Items.Add($"The test is start");
            //注册事件来实现异步
            worker.RunWorkerAsync(this);
            listBox1.Items.Add($"The test is end");
        }

        public static void ListBoxAcrossDomain(ListBox listBox,string text)
        {
            if(listBox == null) return;
            if(listBox.InvokeRequired)
            {
                listBox.Invoke(new Action(() => { listBox.Items.Add(text); }));
            }
            else
            {
                listBox.Items.Add(text);
            }
        }

2、运行结果

相关推荐
玩泥巴的7 小时前
搭建一套.net下能落地的飞书考勤系统
c#·.net·二次开发·飞书
唐宋元明清21889 小时前
.NET 本地Db数据库-技术方案选型
windows·c#
lindexi11 小时前
dotnet DirectX 通过可等待交换链降低输入渲染延迟
c#·directx·d2d·direct2d·vortice
qq_4542450313 小时前
基于组件与行为的树状节点系统
数据结构·c#
bugcome_com14 小时前
C# 类的基础与进阶概念详解
c#
雪人不是菜鸡14 小时前
简单工厂模式
开发语言·算法·c#
铸人14 小时前
大数分解的Shor算法-C#
开发语言·算法·c#
未来之窗软件服务15 小时前
AI人工智能(二十四)错误示范ASR张量错误C#—东方仙盟练气期
开发语言·人工智能·c#·仙盟创梦ide·东方仙盟
yong999015 小时前
基于C#实现的UPnP端口映射程序
开发语言·c#
三天不学习15 小时前
Linux inotify 机制详解,解决“用户实例限制”问题
linux·运维·c#