gpt4 book ai didi

c# - 为什么不应该在订阅同一组件的事件处理程序中对 .NET 组件进行方法调用?

转载 作者:太空宇宙 更新时间:2023-11-03 15:59:27 25 4
gpt4 key购买 nike

我正在研究一个音频组件 - AudioSoundRecorder for .NET - 以及 one of their documentation pages ,他们说:

A call to a method of a certain .NET component should be never performed from within a management function of an event generated by the same .NET component: this is usually cause of errors and dead-lock situations and it's a practice that should be always avoided...

我以前从未听说过 .NET 的这种限制。除了提到的“错误和死锁情况”之外,任何人都可以向我解释为什么应该始终避免这种情况吗?确定处理死锁应该是组件的责任吗?

最佳答案

Surely handling deadlocks should be the responsibility of the component?

理论上,对于行为良好的组件,是的。但有些组件可能不会这样做。
此外,由于这是组件内部结构的一部分,它可能会在版本之间发生变化,例如如果版本 1 无意中阻止了死锁,但在架构更改后 v2 不再阻止死锁。在这种情况下,更新依赖项可能会破坏您的代码。

因此,最好不要在组件事件之一的处理程序中调用组件方法,或者,如果必须这样做,请自行处理死锁。

关于c# - 为什么不应该在订阅同一组件的事件处理程序中对 .NET 组件进行方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22041679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com