首页 > 编程语言 >C# 事件(Event)应用说明二

C# 事件(Event)应用说明二

时间:2024-09-28 08:51:28浏览次数:8  
标签:C# void EventArgs public process 事件 应用 Event ProcessCompleted

简单示例如下

一.界面显示:

 

二.源代码示例: 

        // 定义一个委托类型,用于事件处理程序
        public delegate void MyEventHandler(object sender, EventArgs e);

        // 发布者类
        public class ProcessBusinessClass
        {
            // 声明事件
            public event MyEventHandler ProcessCompleted;

            // 触发事件的方法
            protected virtual void OnProcessCompleted(EventArgs e)
            {
                ProcessCompleted?.Invoke(this, e);
            }

            // 模拟业务逻辑过程并触发事件
            public void StartMyEvent()
            {
                //Console.WriteLine("Process Started!");
                MessageBox.Show("事件触发开始");

                // 这里可以加入实际的运算逻辑的代码

                // 业务逻辑完成,触发事件
                OnProcessCompleted(EventArgs.Empty);
            }
        }

        // 订阅者类
        public class EventSubscriberClass
        {
            public void SubMyEvent(ProcessBusinessClass process)
            {
                process.ProcessCompleted += Process_ProcessCompleted;
            }

            private void Process_ProcessCompleted(object sender, EventArgs e)
            {
                
                MessageBox.Show("事件被执行!");
            }
        }


            private void DoSomething()
            {
                ProcessBusinessClass process = new ProcessBusinessClass();
                EventSubscriberClass subscriber = new EventSubscriberClass();

                // 订阅事件
                subscriber.SubMyEvent(process);

                // 启动过程
                process.StartMyEvent();

               
            }

        private void button18_Click(object sender, EventArgs e)
        {
            DoSomething();
        }

简单示例,大家参照理解,一起学习。。。。。。

标签:C#,void,EventArgs,public,process,事件,应用,Event,ProcessCompleted
From: https://blog.csdn.net/weixin_53520014/article/details/142589343

相关文章

  • COMP 218 Fundamentals of Object-Oriented Programming
    ©Maynotbecopiedorduplicatedwithoutthepermissionoftheowner.COMP218FundamentalsofObject-OrientedProgrammingAssignment1Pleasenote:youareNOTallowedtoposttheassignment/solutionanywhereontheInternet.IntellectualPropertyrightsa......
  • 【C++】string中常用的接口
    目录前言常用接口1.有/无参string2.字符串相加3.string类对象的访问及遍历操作3.1普通遍历3.2迭代器遍历3.3范围for4.string类对象的修改操作前言今天分享一些个人认为string常用的接口,大多数资料来自于cplusplus,其他不常用的平常查阅资料使用即可。需要测试代......
  • Introducing Pricing-Display the Settings of a Condition Type
     step1 step2 step3 step4 step5 step6                           ......
  • 李宏毅机器学习2023-HW10-Adversarial Attack
    文章目录TaskBaselineFGSM(FastGradientSignMethod(FGSM)I-FGSM(IterativeFastGradientSignMethod)MI-FGSM(MomentumIterativeFastGradientSignMethod)M-DI2-FGSM(DiverseInputMomentumIterativeFastGradientSignMethod)ReportfgsmattackJepgCom......
  • C语言 16 系统库
    前面了解了如何使用#include引入其他文件,接着来了解一下系统提供的一些常用库。字符串计算字符串长度:#include<stdio.h>#include<string.h>intmain(){char*c="HelloWorld!";//使用strlen计算长度,注意返回值类型是size_t(别名而已,本质上就是unsignedlong)......
  • 前端框架对比及选择:React、Vue、Angular的深度剖析
    前端框架对比及选择:React、Vue、Angular的深度剖析在前端开发领域,框架的选择一直是开发者和团队面临的重要决策之一。随着技术的不断演进,市场上涌现了众多前端框架,但其中React、Vue和Angular无疑是最为流行和备受关注的三大框架。本文将对这三个框架进行详细对比,帮助开发者......
  • [Angular] 从零开始使用 Angular CLI 创建 Angular 项目
    一、安装Node.js......
  • C语言 16 系统库
    前面了解了如何使用#include引入其他文件,接着来了解一下系统提供的一些常用库。字符串计算字符串长度:#include<stdio.h>#include<string.h>intmain(){char*c="HelloWorld!";//使用strlen计算长度,注意返回值类型是size_t(别名而已,本质上就是unsigned......
  • Karmada新版本发布,支持联邦应用跨集群滚动升级
    本文分享自华为云社区《Karmadav1.11版本发布!新增应用跨集群滚动升级能力》,作者:云容器大未来。Karmada是开放的多云多集群容器编排引擎,旨在帮助用户在多云环境下部署和运维业务应用。凭借兼容Kubernetes原生API的能力,Karmada可以平滑迁移单集群工作负载,并且仍可保持与K......
  • PowerShell 脚本禁用 Realtek Audio Console 中的前面板插孔检测,通常需要修改注册表项
     PowerShell脚本禁用RealtekAudioConsole中的前面板插孔检测,通常需要修改注册表项。以下是一个示例脚本,用于执行此操作:powershellCopyCode#设置注册表路径$registryPath="HKLM:\SOFTWARE\Realtek\Audio\RtkNGUI\Settings"#检查注册表路径是否存在if(-not(Test-......