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

C# 上位机开发之旅-委托事件的那些事[2]

上位机项目开发过程,应该不少遇见界面同步实时刷新的情况,设备的运行情况以及设备数据的实时更新,应用场景非常之多。

那么这个时候,我们就可以用到C#语言中的一些关键功能来实现,比如事件,委托,有些定时器,甚至一些情况下还可以使用全局变量等等。诸如此类,但是也得看场景使用,所谓没有更好,只有更适合。

C#自定义事件 Action

 public static event Action<int> OntimeSetData;public static void SetOntimeData(){//Thread th = new Thread(new ThreadStart(() =>//{//    while (true)//    {//        for (int i = 0; i < 10; i++)//        {//            OntimeSetData?.Invoke(10 + i);//            Thread.Sleep(1000);//        }//    }//}));//th.Start();Task.Run(() =>{while (true){for (int i = 0; i < 10; i++){OntimeSetData?.Invoke(10 + i);Thread.Sleep(1000);}}}).Start();}

数据展示界面进行事件的初始化订阅,以及通过委托实时的更新控件的值

 public FrmParent(){InitializeComponent();ThreadMethodTxt.OntimeSetData += SetText;}public void SetText(int values){this.BeginInvoke(new Action(() =>{this.textBox2.Text = values.ToString();}));}

 

取消订阅 

   private void button2_Click(object sender, EventArgs e){ThreadMethodTxt.SetOntimeData();}private void button1_Click(object sender, EventArgs e){ThreadMethodTxt.OntimeSetData -= SetText;}

 

http://www.lryc.cn/news/399724.html

相关文章:

  • 浏览器出现 502 Bad Gateway的原理分析以及解决方法
  • Java的高级特性
  • pip install selenium异常
  • 应急响应总结
  • 一些资源(●ˇ∀ˇ●)
  • WGCLOUD的ping设备监测可以导入excel数据吗
  • vue 画二维码及长按保存
  • IDEA中Git常用操作及Git存储原理
  • 人工智能算法工程师(中级)课程4-sklearn机器学习之回归问题与代码详解
  • 智能制造热点词汇科普篇——工业微服务
  • FastGPT+OneAI接入网络模型
  • Java核心篇之JVM探秘:内存模型与管理初探
  • 未来互联网的新篇章:深度解析Facebook的技术与战略
  • MySQL卸载 - Windows版
  • Java核心篇之JVM探秘:对象创建与内存分配机制
  • Nuxt框架中内置组件详解及使用指南(五)
  • python开发遇到的坑汇总
  • 【线性表,线性表中的顺序表和链表】
  • 46 mysql 客户端拿不到具体的错误信息
  • Java语言程序设计——篇三(2)
  • 如何实现一个分布式锁
  • Ajax从零到实战
  • 编程参考 - 在C++移动构造函数声明中使用noexcept
  • Vue2/Vue3实现全局/局部添加防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。
  • GuLi商城-商品服务-API-属性分组-获取分类属性分组
  • 安全测试理论
  • 序列化和反序列化
  • OpenCV中使用Canny算法在图像中查找边缘
  • 基于springboot+vue+uniapp的机电公司管理信息系统
  • 电子期刊制作实战教程:从零开始制作