日期:2014-05-17  浏览次数:20916 次

C# winform 关于dll即时通知exe结果
我现在封装了一个COM口通信的DLL。当下位机回发报文给dll的时候,会执行comm.DataReceived这样一个事件。在这个事件中。会有两个int参数,其中一个是不变的,一个是随时在变化的。那么我要判断这两个参数是否相等,然后exe可以即时知道这个判断结果。我现在有一个蠢方法就是用Timer监控,可是感觉这样很不专业。有没有别的方法?请问一下要怎么做?
如果上面的描述不是很清楚,你可以这样理解:
一个类库,有static int a 和int b。即a是不变的,b是随时在变的。然后if(a!=b) return ture;else return false;接着有一个winform,引用了这个dll。那么我要怎么做,才能让winform随时知道两个数的判断结果是true 还是false。除了用Timer或者多线程有没有别的方法。 

------解决方案--------------------
引用:
我现在封装了一个COM口通信的DLL。当下位机回发报文给dll的时候,会执行comm.DataReceived这样一个事件。在这个事件中。会有两个int参数,其中一个是不变的,一个是随时在变化的。那么我要判断这两个参数是否相等,然后exe可以即时知道这个判断结果。我现在有一个蠢方法就是用Timer监控,可是感觉这样很不专业。有没有别的方法?请问一下要怎么做?
如果上面的描述不是很清楚,你可以这样理解:
一个类库,有static int a 和int b。即a是不变的,b是随时在变的。然后if(a!=b) return ture;else return false;接着有一个winform,引用了这个dll。那么我要怎么做,才能让winform随时知道两个数的判断结果是true 还是false。除了用Timer或者多线程有没有别的方法。 


dll里暴露一个事件出来,return之前判断事件是否为null,不为null则掉用事件。然后你winform里写事件处理函数