我有一个与HID设备交互的应用程序,在较慢的机器上,当我订阅收到HID报告时引发的onReport事件并且我怀疑是因为它正在启动一个新实例时,它似乎会自行挂起事件处理程序可能在前一个完成任务之前。
有没有办法确保在前一个事件处理程序完成任务之前忽略报告?我正在考虑一个静态变量,处理程序可以将其设置为最后一个动作,但是如果它存在的话,就像fins内置到.net中的内容一样。
答案 0 :(得分:0)
您可以使用线程同步机制来确保只有onle线程可以同时运行特定的代码段。在Googles中搜索线程同步。
您可以考虑的最简单的解决方案是使用锁定机制:
lock (lockObject)
{
// The code that you put here can be run only on one thread at the same time...
// ...
}
您还可以引入一些字段来标记代码的特定部分是否已经执行过。