| | |
| | | |
| | | _ = Task.Run(async () => |
| | | { |
| | | await HanlderForPringBarCodeAsync(); |
| | | //await HanlderForPringBarCodeAsync(); |
| | | // 例1:同步处理 |
| | | //await ProcessAsync(); |
| | | |
| | |
| | | }); |
| | | } |
| | | |
| | | if (changed.Name == "切割进站信号" && changed.New?.Value.SafeString().ToBool() == true) |
| | | { |
| | | //if (changed.Name == "切割进站信号" && changed.New?.Value.SafeString().ToBool() == true) |
| | | //{ |
| | | |
| | | // TODO: 处理变量值变化 |
| | | // Tips:https://cms-docs.shengyc.com/cms/api/%E5%90%8E%E7%AB%AF#3-%E5%8F%98%E9%87%8F%E6%A8%A1%E5%9D%97 |
| | | /* 说明:通过订阅 IVariableDataCache.TagChanged 事件,您可以实时监控变量的变化。此事件会传递所有变量至事件处理函数,因此,业务层需在函数中筛选关注的变量。 |
| | | 注意事项: |
| | | (1)性能影响: 发布事件时,事件的发送者将阻塞流程。因此,强烈建议避免在事件处理函数中执行 I/ O 操作、HTTP 接口访问或其他耗时操作,以防止对系统性能产生严重影响,导致整个系统响应延迟。 |
| | | (2)高频率触发: 由于事件订阅了全量变量,触发频率可能非常高。 |
| | | (3)异步处理: 鉴于事件触发频率很高,建议业务层在筛选关注变量后,使用 Task 启动新线程处理业务逻辑,以避免阻塞核心的变量监听功能,实现业务层与平台基座的解耦。 |
| | | (4)并发管理: 如果业务层并发量大,必须优化代码设计和实施,以减少在高并发情况下的系统资源消耗,防止系统性能问题。 |
| | | (5)代码安全: 安装并使用 CMS.CodeAnalysis 分析器来分析 IVariableDataCache.TagChanged 的使用情况。该工具能在使用不当时提供编译错误,帮助您提高代码质量。*/ |
| | | // // TODO: 处理变量值变化 |
| | | // // Tips:https://cms-docs.shengyc.com/cms/api/%E5%90%8E%E7%AB%AF#3-%E5%8F%98%E9%87%8F%E6%A8%A1%E5%9D%97 |
| | | // /* 说明:通过订阅 IVariableDataCache.TagChanged 事件,您可以实时监控变量的变化。此事件会传递所有变量至事件处理函数,因此,业务层需在函数中筛选关注的变量。 |
| | | // 注意事项: |
| | | // (1)性能影响: 发布事件时,事件的发送者将阻塞流程。因此,强烈建议避免在事件处理函数中执行 I/ O 操作、HTTP 接口访问或其他耗时操作,以防止对系统性能产生严重影响,导致整个系统响应延迟。 |
| | | // (2)高频率触发: 由于事件订阅了全量变量,触发频率可能非常高。 |
| | | // (3)异步处理: 鉴于事件触发频率很高,建议业务层在筛选关注变量后,使用 Task 启动新线程处理业务逻辑,以避免阻塞核心的变量监听功能,实现业务层与平台基座的解耦。 |
| | | // (4)并发管理: 如果业务层并发量大,必须优化代码设计和实施,以减少在高并发情况下的系统资源消耗,防止系统性能问题。 |
| | | // (5)代码安全: 安装并使用 CMS.CodeAnalysis 分析器来分析 IVariableDataCache.TagChanged 的使用情况。该工具能在使用不当时提供编译错误,帮助您提高代码质量。*/ |
| | | |
| | | _ = Task.Run(async () => |
| | | { |
| | | await HanlderForCutAsync(); |
| | | // 例1:同步处理 |
| | | //await ProcessAsync(); |
| | | // _ = Task.Run(async () => |
| | | // { |
| | | // await HanlderForCutAsync(); |
| | | // // 例1:同步处理 |
| | | // //await ProcessAsync(); |
| | | |
| | | // 例2:调用外部API |
| | | //await ExecuteExternalApiAsync(); |
| | | }); |
| | | } |
| | | // // 例2:调用外部API |
| | | // //await ExecuteExternalApiAsync(); |
| | | // }); |
| | | //} |
| | | } |
| | | } |
| | | |