2

我正在使用无线电微控制器(BLE)做一些工作。.NETGenericAttributeProfile命名空间中支持的机制是EventHandler在新数据进入时使用(通知)。我目前看到的一个问题是,尽管我的数据是从无线电硬件按顺序发送的,但数据不一定按该顺序处理。我猜这是由于EventHandler调用的异步方式造成的(如果我错了,请纠正我)。每次有新数据进入时,都会调用事件处理程序,然后读取数据,并写入控制台数据和每次调用事件处理程序时递增的静态变量(不是线程安全的,但似乎是可以进行测试)。它正在打印的数据(如果也在递增),

所以我的问题是,如何确保事件按顺序处理。从我所做的研究中,我只能找到关于 eventHandler 执行顺序的文献。我不在乎这里,因为我只有 1 个事件处理程序。我关心事件执行的顺序

4

1 回答 1

0

2014 年 9 月 15 日更新

我只是想让每个人都知道我实际上有两个问题正在发生。我最初认为它与线程计时有关,但这只是问题的一部分(无论如何对我来说)。在我解决了我的线程计时问题后,我发现,正如原始海报所说,这些事件实际上是乱序的。我已经与 Microsoft 确认了这个问题,他们现在正在努力修复。一旦我从他们那里得到解决方案,我就会在这里发布。

2015 年 1 月 8 日更新

微软终于联系到我并确认了这个问题。但是,他们确定受益成本太高而无法添加到 8.1 内核中,因此他们不会在 windows 的下一个主要版本之前引入修复程序。

于 2014-09-02T20:15:06.543 回答