|
|
1
2
应该可以工作,因为闭包捕获了处理程序和EventRaisingObject。 |
|
2
1
由于需要处理事件的情况可能会出现多次,而且线程是一个问题,因此我建议在提升和处理条件之间建立更大的连接。 我不会动态地添加和删除事件处理程序。它当然可以在事件处理程序中完成,但是在多线程环境中很难实现这一功能。 但出于同样的原因,我肯定也不会使用布尔值。 您可以考虑创建一个队列。将一个项目放入队列,以表示事件处理程序需要响应事件,并在响应队列时将该项目从队列中取出(当然,在两侧都有适当的锁定),您可以更好地控制流程。 也许这对你的情况不起作用,但这是值得考虑的事情。 |
|
3
1
可以在事件处理程序内取消订阅,但这里有一个显式的争用条件。另一个线程也可能正在调用事件处理程序,使处理程序被调用 之后 取消订阅是完全可能的。您需要序列化对事件委托的访问:
这与保护布尔标记没有什么不同,尽管您可以通过互锁类提高效率。 |
|
|
4
0
您可以将发送者强制转换为引发事件并取消订阅的对象。
|
|
OREO · 如何在不实际单击复选框的情况下选中它 2 年前 |
|
|
Dan · 在元素外部设置html点击处理程序点击后立即触发 2 年前 |
|
|
Mero · Svelte在父事件调用上调用新的嵌套事件处理程序 2 年前 |
|
|
iorice · usercontrol dll中的组件事件 2 年前 |
|
|
Awin · 点击事件功能不适用于Vue组件 2 年前 |
|
|
Kiwi · 将可共享的自定义数据添加到事件MS图形api 2 年前 |