Action 委托与与处置有关的事件处理程序
|
我正在寻找体系结构建议,以及对委托人和lambda的更深刻理解(除了需要解决一个实际问题之外!)
我们有代码通过pda上的串行端口与设备(秤)交互。我们连接一个视图以从设备接收数据。由于一次只能有一个视图“连接”到我们的比例尺实例,因此我们使用了Action类型的属性来处理比例尺实例和视图之间的交互(而不是订阅事件)。然后,视图将该属性设置为一个lambda,该lambda从比例尺中获取值并修改UI。
我们目前遇到的问题是关于“处置我们的观点”。如果在用户关闭视图(此时我们使用CF时强制执行Dispose)时,缩放比例当前正在发送数据(并且我们位于Action处理程序内部),则该应用会挂起:Action Lambda永远不会结束运行,并且尝试关闭SerialPort时,Scale实例的Dispose挂起。
与事件相比,在这种情况下如何处理Action是类的属性上是否存在关键区别?
根据日志详细信息,当在视图上调用Dispose时,代码位于Action lambda(用于修改某些UI元素)中。它们都在UI线程上-如何同时运行?昨晚我睡不着觉吗?
有人在这里看到一些较差的体系结构决策,应该纠正吗?
谢谢。如果描述不够合理,我可以尝试在此处获取一些代码示例。
没有找到相关结果
已邀请:
2 个回复
傻零凰死授
宦哨抹存胳