C#订阅OpcServer 事件,OpcServerTag数据变化触发事件的原理是什么 10C

做了一个C#订阅OpcServer事件的程序,由于数据变化比较频繁,触发事件频率较高;
为了提高程序的性能,我想通过多线程创建多个实例,每个实例订阅对应地址变化的事件,
但不清除OPC触发事件以及C#程序响应事件的工作原理,求懂这方面知识的前辈给解释一下,并提供一些好的建议,

2个回答

opc是一个接口规范,下面有不同的实现,比如网络、dde、ole等等,在标签修改之类的操作发生的时候,opc server会广播消息给客户端。客户端控件会触发事件,调用你的事件处理函数。

作为调用者,而且是工控领域的开发者,未必要深入理解底层的过程,但是要明白两个基本原则:
(1)使用的是什么线程模型,是否需要线程同步。
(2)作为opc server的一方,如果是双向通讯的话,不需要担心性能的问题。除非是轮询(也就是客户端不知道服务器是否更新,而通过不断周期性请求数据来判断的模式)

aborlen
aborlen 我这个程序事件触发的特别频繁,性能要求较高,出现过卡顿情况,像我之前说的那种通过多线程创建多个实例,每个实例订阅对应地址变化的事件这种方法能否提高程序性能
2 年多之前 回复

定义delegate void MyEvent(OPCID);

MyEvent myEvent;

void function(OPCID)
{
}

myEvent+=function;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐