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 ? "在线" : "离线")}");
}
相关推荐
子兮曰6 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!6 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰6 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里6 天前
java中的继承和多态的区别
java
小羊没烦恼!6 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
前端小万6 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝6 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕6 天前
JSONObject与JSONArray封装数据格式区别
java·json
神仙别闹6 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
胡写代码6 天前
别再前后端各写一套表单校验了
java·后端