我想知道是否有人有一些关于如何正确地在。net微框架中做事件的指针和/或好的指南。
我有一个Netduino,正在围绕各种组件制作一个小包装框架,我试图使它成为事件驱动的。开始用我习惯的方式做,但发现在Microsoft.SPOT
名称空间中有几个类和接口似乎与事件相关,我以前没有使用过它们中的任何一个。例如:
- 调度员
- DispatcherFrame
- DispatcherObject
- DispatcherOperation
- DispatcherTimer
- EventHandlersStore
- EventRoute
- EventSink
- IEventListener
- IEventProcessor
- RoutedEvent
还有更多。我如何正确地使用所有这些?我应该使用它们吗?
作为一个例子,我想创建一个围绕照片/光传感器的包装器,每当光照水平改变时,它就会引发一个事件。为了这个(我想?)我需要轮询一个模拟引脚的值,看看它是否改变。我可以很简单地通过在单独的线程上启动一个观察者或类似的东西来做到这一点。还有别的办法吗?例如,我想我不应该为每个传感器设置一个线程,因为这可能会变得非常多,而且资源非常有限?
像在其他。net版本中那样使用事件。
声明和使用事件。
如果您希望订阅者使用自定义方法签名,则声明并使用委托。
如果您想遵循(sender, args)模式等,则构建自定义事件参数。
使用事件处理程序或内联函数订阅/取消订阅事件。
底线是微框架事件没有什么特别之处。其他版本的东西你都有了,所以你只需要专注于用事件为你的消费者做一个好的api,就像你通常做的那样。