C#事件声明办法

csharp 复制代码
 public event Action<string>? OnLogMessage;
 public event Action<bool>? OnAutoRunCompleted;

  _modbusClient.OnLogMessage += LogMessage;
 _modbusClient.OnDeviceStatusChanged += OnModbusDeviceStatusChanged;


//------直接调用
  //_plcModbusClient.OnLogMessage += (msg) => LogMessage($"[PLC串口] {msg}");
  //_plcModbusClient.OnDeviceStatusChanged += (addr, online) =>
  //{
  //    LogMessage($"PLC设备 {addr} 状态: {(online ? "在线" : "离线")}");
 // };

 private void LogMessage(string message)
 {
     if (txtLog.InvokeRequired)
     {
         txtLog.Invoke(new Action<string>(LogMessage), message);
         return;
     }
     txtLog.AppendText($"[{DateTime.Now:HH:mm:ss}] {message}\r\n");
     txtLog.ScrollToCaret();

 }



private void OnModbusDeviceStatusChanged(byte address, bool isOnline)
{
    if (InvokeRequired)
    {
        Invoke(new Action(() => OnModbusDeviceStatusChanged(address, isOnline)));
        return;
    }
    LogMessage($"Modbus设备 {address} 状态: {(isOnline ? "在线" : "离线")}");
}
相关推荐
定栓几秒前
Webpack迁到Vite第七节(二):全家桶移除 — Babel 全家桶深度分析
前端·webpack·node.js
企业数字化笔记4 分钟前
多租户配额怎么控制?用量口径、并发预留与超额处理的实现方法
java·数据库·spring boot
IT_陈寒8 分钟前
React组件莫名重渲染?你可能忘了这个小细节
前端·人工智能·后端
鶴哥只手遮天20 分钟前
React 19.3.1 源码深度剖析-第 12 章(下)RSC 与 Flight 协议
前端·react.js·开源
deli00720 分钟前
TCP 三次握手到底发几个包?丢包重传动画实测一遍
前端
盟接之桥28 分钟前
盟接之桥谈线束数字化-按单入按单出:线束企业库存管理的破局之道
大数据·前端·网络·数据库·人工智能·制造
巴勒个啦32 分钟前
Prompt Engineering 实战:5 个让 AI 生成生产级业务代码的工程模式
java·前端
去伪存真33 分钟前
AI时代,古法编程的码农路在何方?
前端
计算机魔术师43 分钟前
从7月绕过沙盒到9月再曝违规,OpenAI的AI安全防线在漏什么
前端
我的div丢了肿么办1 小时前
element-plus表格使用:filter-method过滤导致出现无数据
前端·javascript·vue.js