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

国内做视频的网站网站优化需要做什么

国内做视频的网站,网站优化需要做什么,仿《砍柴》网站程序,网站建设包含seo吗在 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://www.dtcms.com/a/594151.html

相关文章:

  • 用 LangGraph + MCP Server 打造 SpreadJS 智能助手:让 AI 真正懂你的表格需求
  • 做网站用php还是node外贸网站 备案
  • 行业门户网站源码列举五种网络营销模式
  • 摄影建设网站wordpress插件装多了卡
  • 画世界Pro笔刷大全!含导入教程与多风格笔刷合集
  • 彩笔运维勇闯机器学习--多元线性回归(实战)
  • 免费推广店铺的网站网站默认首页怎么做
  • leetcode1377.T秒后青蛙的位置
  • 基于Yolo的图像识别中的特征融合
  • C语言自定义数据类型详解
  • 社交网站开发 转发建设网站的好处和优点
  • VBUS(Voltage Bus,电压总线) 是什么?
  • 前端做的网站潮阳网站制作
  • 北京哪家公司做网站好网站建设开发报价方案模板
  • 国家商标注册官网查询系统南京seo顾问
  • cpa单页网站怎么做sae wordpress 4.3
  • Vite与Webpack完全指南:从零开始理解前端构建工具
  • [优选算法专题六.模拟 ——NO.37~39 替换所有的问号、提莫攻击、Z 字形变换]
  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 4
  • HOT100题打卡第34天——二分查找
  • 电子商务网站的作用单位网站建设情况
  • 公司如何申请一个网站网址建设网站重庆
  • RedisTemplate 实战:Spring 项目中 Redis 操作的全维度指南
  • Doris Docker 完整部署指南
  • C语言算法:排序算法入门
  • seo简单优化sem和seo都包括什么
  • 舞蹈培训机构网站建设上门做网站公司哪家好
  • Unity Tilemap小方块(瓦片)颜色的更改
  • 中国建设银行网站首页u盾登入网站建设小
  • Java 基本语法:从小白到大师的编程之路!