【发布时间】:2014-08-18 21:51:55
【问题描述】:
我正在处理具有 2 个项目的 Visual Studio 解决方案。一个主要的 WPF 项目,以及一个使用外部 COM 库并通过更易于调用的方法简化所有代码的类库。我试图将代码分开,所以你可以说类库是一个工作项目,而我的主项目有所有与 UI 相关的代码。我的问题是在使用类库中的变量时。
我在类库中有这个变量,如果在我购买的扫描仪上按下物理按钮,它的 int=0 会变为 1。我知道按钮是否被按下的唯一方法是检查该变量属性,我需要一种方法来知道它何时发生变化。到目前为止,我唯一的想法是:
Thread backgroundThread = new Thread(() => {
while (variable == 0) {
// Do some work, if not;
thread.Sleep(250);
}
});
但这感觉效率低下,或者我觉得。如果我可以修改这个属性,我很想在 Set 方法中添加一些代码,以便在它发生更改时得到通知,但由于这是一个外部 COM 库的属性,我无法控制它们。这是我能做到的唯一方法吗?
【问题讨论】:
-
如果你不能强制外部代码使用回调或事件,听起来你被卡住了:(
-
顺便说一句,无需在标题中添加“更多信息”。我们将假设有更多信息,如果没有,请适当投票。
-
不能让类库在变量改变值时触发事件?
-
@dbc 不,我已经尝试过了,但它是 COM 类库中的一个密封属性,我什至看不到它的内容(我几乎无法将它与它附带的糟糕文档一起使用)。
标签: c# wpf variables com notifications