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 ? "在线" : "离线")}");
}
相关推荐
战场小包1 小时前
世界杯结束了,我用 AI 造了平行宇宙,这次结局你写
前端·人工智能·ai编程
冻感糕人~1 小时前
大模型学习指南:收藏这份AI Agent四层工程地图(小白程序员必备)
java·大数据·人工智能·学习·大模型·agent·大模型学习
方方洛1 小时前
AI 教程系列-TUI 应用开发教程03-TUI 框架与技术选型
前端·javascript·ui kit
第二个人1 小时前
Python Web开发:从Flask到FastAPI,我经历了什么
前端·python·flask
一路向北North2 小时前
Spring AI(6) :对话机器人-会话历史
java·人工智能·spring
其实防守也摸鱼2 小时前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
太平洋月光2 小时前
Antv G2中自定义技巧📊
前端·数据可视化
高铭杰2 小时前
万物皆可KV(1)TIDB存储布局分析
java·前端·tidb
shmily麻瓜小菜鸡2 小时前
前端“伪防盗链”方案
前端·javascript·vue.js·bootstrap·echarts