问题描述
一、如何在C#环境下,判断I/O板卡的上升沿信号?二、得到上升沿信号之后,触发一个事件,两个上升沿信号间隔200毫秒,处理一次事件需要300毫秒,这样如果连续两次触发,第二次事件就不处理,如何解决这个问题?哪位大神指点一下,不胜感激!!!
解决方案
解决方案二:
1信号队列2如果信号触发在短时间内不多可以用线程处理。
解决方案三:
引用1楼jardyson的回复:
1信号队列2如果信号触发在短时间内不多可以用线程处理。
大神,我是新手,能否回答详细一点,最好能给个示例,非常感谢!!!
解决方案四:
这种编程使用汇编或者c,并且运行时不受操作系统控制地去执行。c#与此类应用无关。c#(.net)应该用来做此类东西的高级的系统,而不是做底层。
解决方案五:
信号增量大且实时的话就要在驱动层处理,监听作用可以试试我的方法,如果对监听精确度有高要求就要Tick层次。代码说简单也简单说复杂也复杂,看你这边的应用及整体框架。给你一个简单的思路,首先需要两个线程。线程1监听信号,当有信号时保存至堆栈后再监听下一个。线程2监听信号堆栈,有信号后开线程处理。这种只适合低并发处理且是主动监听模式,主动监听的一个缺点可能会有漏网之鱼,驱动层有硬件中断信号,所以用它来开发是完美的选择。
时间: 2024-09-30 19:51:20