程序来不及处理消息该怎么办呢??有人建议可以直接丢弃,但这样行的通吗??(顶者有分)
程序流程大概是这样的:
电脑PCI插槽上有一块定时计数器板卡,该计数器用来读取外部频率脉冲并定时产生溢出中断消息,现在外部过来的频率为1000Hz,即每秒钟定时计数器会接收到外部1000个脉冲.现在计数器设置为每读取10个脉冲就向我的MFC程序发送一个溢出中断消息,即此溢出中断消息每10ms就发送一次.
现在我是用一个单独的轮询线程不断的查询该溢出中断消息的.每当我的轮询线程捕获到此溢出中断消息时就开辟另一个仿真线程开始我的仿真程序.现在的问题是有时候,大约每产生5万~10万次左右的中断消息会有一个溢出中断消息我的仿真程序来不及处理,即轮询线程捕获到了中断消息,但我上一次的仿真程序仍在进行当中.
我现在是这样做呢,就是在仿真线程头尾加个线程锁,当中断消息来不及处理时就丢弃掉来不及处理的脉冲.但我觉的5万~10万次的中断消息就丢弃掉一个是不是丢弃的太频繁了呢?请问你们觉得多少次中断消息才可以丢弃一次呢?请问有这方面的教材吗?
放远到一般情况下,对于程序来不及处理的消息,你们是怎么做的呢?直接丢弃吗?
不知道我有没有讲清楚,先谢谢了啊