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;
   }

 

相关推荐

  1. C#委托事件

    2024-07-12 17:32:01       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 17:32:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 17:32:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 17:32:01       58 阅读
  4. Python语言-面向对象

    2024-07-12 17:32:01       69 阅读

热门阅读

  1. WSGI 服务器教程:`execute` 方法解析

    2024-07-12 17:32:01       22 阅读
  2. Scala学习笔记16: 注解

    2024-07-12 17:32:01       18 阅读
  3. vscode使用ssh连接远程服务器

    2024-07-12 17:32:01       15 阅读
  4. RabbitMQ 高级功能

    2024-07-12 17:32:01       20 阅读
  5. 【QT学习十五】 QT绘图

    2024-07-12 17:32:01       23 阅读
  6. 3213. 最小代价构造字符串

    2024-07-12 17:32:01       19 阅读
  7. 基于 SD 卡的 FatFs 文件系统

    2024-07-12 17:32:01       19 阅读
  8. 拥抱变革,AI工作新纪元

    2024-07-12 17:32:01       19 阅读
  9. 【若依】打开一个新页面

    2024-07-12 17:32:01       21 阅读
  10. Linux跨服务器文件传输

    2024-07-12 17:32:01       20 阅读