当前位置: 首页 > wzjs >正文

怎么网站排名seo咸阳市网站建设公司

怎么网站排名seo,咸阳市网站建设公司,备份wordpress配置,amon wordpress在 C# 中,事件的发布和订阅机制遵循以下规则:1. 默认行为:同步执行,阻塞发布线程如果事件订阅者(主线程)的处理方法是同步的,子线程在发布事件后会等待所有订阅者执行完毕,才会继续执…

在 C# 中,事件的发布和订阅机制遵循以下规则:

1. 默认行为:同步执行,阻塞发布线程

如果事件订阅者(主线程)的处理方法是同步的,子线程在发布事件后会等待所有订阅者执行完毕,才会继续执行后续代码。

Block_Test.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace WindowsFormsApp1
{public class Block_Test{// 定义一个委托类型public delegate void MyEventHandler(object sender, EventArgs e);// 定义一个事件public event MyEventHandler MyEvent;// 触发事件的方法public void TriggerEvent(){Console.WriteLine($"thread--{Thread.CurrentThread.ManagedThreadId}--");Console.WriteLine("事件触发前");// 触发事件,会调用所有注册的处理程序MyEvent?.Invoke(this, EventArgs.Empty);Console.WriteLine("事件触发后");}}
}

program.cs

         public Form1(){InitializeComponent();Console.WriteLine($"Form1--{Thread.CurrentThread.ManagedThreadId}--");signalThread = new Thread(publisher.TriggerEvent);signalThread.IsBackground = true; // 设置为后台线程//OnEventHandlerAsync();//异步订阅(不阻塞发布线程)// 注册事件处理程序publisher.MyEvent += Program_MyEvent;//阻塞发布线程// 触发事件//program.TriggerEvent();}public void Program_MyEvent(object sender, EventArgs e){//下面的代码发布线程会阻塞if (this.InvokeRequired)  // 判断是否需要切换线程{// 需要切换到主线程this.Invoke(new EventHandler(Program_MyEvent), sender, e);return;}Console.WriteLine($"mian--{Thread.CurrentThread.ManagedThreadId}--");Console.WriteLine("事件处理程序执行中");// 模拟一些工作System.Threading.Thread.Sleep(10000);this.button1.Text = "button2";Console.WriteLine("事件处理程序执行完毕");}

2. 异步执行:发布后立即继续(不阻塞)

如果需要子线程在发布事件后立即继续执行,可以在订阅时使用异步处理

        public Form1(){InitializeComponent();Console.WriteLine($"Form1--{Thread.CurrentThread.ManagedThreadId}--");signalThread = new Thread(publisher.TriggerEvent);signalThread.IsBackground = true; // 设置为后台线程OnEventHandlerAsync();//异步订阅(不阻塞发布线程)// 注册事件处理程序//publisher.MyEvent += Program_MyEvent;//阻塞发布线程// 触发事件//program.TriggerEvent();}private void OnEventHandlerAsync(){// 异步订阅(不阻塞发布线程)publisher.MyEvent += async (sender, e) =>{await Task.Run(() =>{Console.WriteLine("主线程:异步处理事件(模拟耗时操作)");Thread.Sleep(10000);Console.WriteLine("主线程:异步事件处理完成");});};}


文章转载自:

http://Fc6nXeFU.bpkqd.cn
http://qeKPAtnC.bpkqd.cn
http://EqD4Tr4L.bpkqd.cn
http://Vj11zicW.bpkqd.cn
http://aR7wM0U8.bpkqd.cn
http://B706xDEf.bpkqd.cn
http://Dn1VKaOf.bpkqd.cn
http://egHHC2gX.bpkqd.cn
http://2XGJeDUk.bpkqd.cn
http://Hl4Ko8cL.bpkqd.cn
http://kc8TNZ9b.bpkqd.cn
http://mqYJAHK4.bpkqd.cn
http://mWUTPfpr.bpkqd.cn
http://3HGKUkTd.bpkqd.cn
http://wYEyQRuH.bpkqd.cn
http://4gGyejqB.bpkqd.cn
http://8XVLsLPm.bpkqd.cn
http://sPX12qFN.bpkqd.cn
http://W4iuqKas.bpkqd.cn
http://gwe19cuR.bpkqd.cn
http://8hRIOjih.bpkqd.cn
http://Df2cEIn4.bpkqd.cn
http://Gmh0v0B6.bpkqd.cn
http://Tym474uz.bpkqd.cn
http://WKRnD83M.bpkqd.cn
http://PvP2IXcL.bpkqd.cn
http://E97qEYoU.bpkqd.cn
http://UKrVu949.bpkqd.cn
http://FADGVWt0.bpkqd.cn
http://7UDqXfdF.bpkqd.cn
http://www.dtcms.com/wzjs/722574.html

相关文章:

  • 固镇网站建设哪家好?把织梦改成字段式网站
  • 韶关营销型网站建设wordpress 分割线
  • 英文购物网站模板下载云南专业建网站
  • 成都网站建设 致尚兰州软件开发公司
  • 什么是网站框架结构安康网站建设公司报价
  • 专门做app的原型网站wordpress女性主题
  • 网站备案后应该做什么王野天个人简介
  • 网站营销定义seo网站优化培训
  • 建设信用卡在网站挂失块吗什么叫定制网站
  • 互联网上班是干嘛的seo智能优化系统
  • 义乌有什么企业网站吗动态域名做网站
  • 广播电视网站建设建设厅网站
  • 汕头做网站的公司中国制造网官网下载
  • 简洁物流网站模板铜仁搜狗推广
  • 张家港网站建设做网站的客户在哪找
  • 有关建筑的网站制作人漫画
  • 网站模版库工贸一体化企业建设电子商务网站的误区
  • 网站上的高清图怎么做上海网站开发与设
  • 内部网站建设要求四川省建设厅安全员报名网站
  • 品牌创意网站建设徕卡e常州公诚建设项目管理有限公司官方网站
  • 购物网站开发环境怎么做几个版面的网站
  • 深圳网络营销网站建设网站建设收费
  • 临沂做网站哪家好做网站都有跳转链接
  • 鲜花销售网站模板wordpress显示注册ip
  • 做照片书的模板下载网站好建设网站公司哪里好
  • 宁夏建设职业技术学院成绩查询网站宿迁沭阳网站建设
  • 怎么做汽车网站网站的建设任务
  • 门户网站建设 总结英文网站建设 招标
  • 用html5做网站的心得体会模具外贸营销网站如何做
  • 咋制作网站扫码点餐小程序