gpt4 book ai didi

c# - 如何防止事件的订阅者相互冲突?

转载 作者:行者123 更新时间:2023-11-30 22:48:08 25 4
gpt4 key购买 nike

假设我有一个事件有 2 个订阅者(所有事情都发生在同一个线程中)- 一个订阅者写入日志文件,另一个显示 MessageBox。

如果 MessageBox 是订阅列表中的第一个,则直到用户关闭消息框后才会写入日志条目。所以日志条目中的时间实际上是消息框关闭的时间,而不是事件发生的时间。

看来最好的解决方案是让日志编写器在显示消息框的代码之前订阅事件。然而,在这里有一个类似的问题:Are event subscribers called in order of subscription?

最好的答案是永远不要依赖订阅者的顺序。那么我该如何在不担心他们的顺序的情况下防止冲突呢?

最佳答案

所有的个人事件订阅者都需要与他人相处融洽。正确的做法是显示 MessageBox 的事件启动后台线程并从那里显示 MessageBox。

关于c# - 如何防止事件的订阅者相互冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1884620/

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