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 ? "在线" : "离线")}");
}
相关推荐
程序员黑豆7 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
To_OC8 小时前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript
GreenTea8 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
风流 少年8 小时前
Spring AI 2.0:Memory
java·后端·spring
码匠许师傅8 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
浮生望9 小时前
前端API工程化:用 Mock 数据与 Axios 配置实现独立于后端的并行开发
前端
万少9 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
小席是个热心肠9 小时前
AI相关的自我学习
java·人工智能·学习
波波0079 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
Brown.alexis10 小时前
es6知识点1-自备使用
前端·ecmascript·es6