[quote=引用 11 楼 yjq92 的回复:] 这个例子的被监视对象PetTracker有判断条件if (distance > 100),而实际我的判断条件是if(有数据传输进来了?),可是就是不懂怎么设置这个条件,请赐教。
OnSend和OnReceive事件下面有绿色的波浪线,提示没有被用到 -》事件需要“触发”才能被订阅者获取到。 第一张图已经订阅,但不是太完美,应该在+=之前进行-= 。 或者在form的关闭事件中进行-=操作,要移除无用的自定义事件订阅,因为垃圾回收器不会对它们进行回收,直到进程结束。 第二张图中要有一个函数来“触发”事件,类似: EventHandler handler = OnSend; if (handler != null) handler(this, null);
EventHandler handler = OnSend; if (handler != null) handler(this, null);
if (OnSend != null) { OnSend(如果有参数); } 另一个同样
if (OnSend != null) { OnSend(如果有参数); }
这个例子的被监视对象PetTracker有判断条件if (distance > 100),而实际我的判断条件是if(有数据传输进来了?),可是就是不懂怎么设置这个条件,请赐教。
[quote=引用 12 楼 yjq92 的回复:] 不太懂前半段话的意思(如果无条件触发,那么你监控OnReceive就能实现接收数据的监控),如果不知道具体的触发条件是什么,怎么实现?
不太懂前半段话的意思(如果无条件触发,那么你监控OnReceive就能实现接收数据的监控),如果不知道具体的触发条件是什么,怎么实现?
[quote=引用 9 楼 yjq92 的回复:] Partner.OnReceive += new S7PartnerEvent.OnReceiveEventHandler(OnReceive);其中Partner.OnReceive是接收事件,最后面括号里的OnReceive就是具体的接收函数,理论上是执行某些条件,满足后就触发接收事件,然后自然而然就执行了接收函数,可是不知道要设置什么条件来判断是否有数据进来?可以具体点说一下吗?
你可以看一下观察者模式。
Partner.OnReceive += new S7PartnerEvent.OnReceiveEventHandler(OnReceive);其中Partner.OnReceive是接收事件,最后面括号里的OnReceive就是具体的接收函数,理论上是执行某些条件,满足后就触发接收事件,然后自然而然就执行了接收函数,可是不知道要设置什么条件来判断是否有数据进来?可以具体点说一下吗?
[quote=引用 7 楼 yjq92 的回复:] 其实主要的难点在于不知道被监视者是谁,它是局域网传输数据的,不知道监控什么对象(不像有串口那样监控串口对象就行),所以我想请教一下,一般局域网数据传输,监控是否有数据过来,应该监控什么变量或者对象啥的呀?(目前只有对应的接收函数的API接口)
其实主要的难点在于不知道被监视者是谁,它是局域网传输数据的,不知道监控什么对象(不像有串口那样监控串口对象就行),所以我想请教一下,一般局域网数据传输,监控是否有数据过来,应该监控什么变量或者对象啥的呀?(目前只有对应的接收函数的API接口)
[quote=引用 3 楼 yjq92 的回复:] 建立两个函数去分别调用这两个事件,那么这两个新建立的函数应该放在什么地方呢?是在第二张图的两个事件下面吗?
建立两个函数去分别调用这两个事件,那么这两个新建立的函数应该放在什么地方呢?是在第二张图的两个事件下面吗?
110,549
社区成员
642,562
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧