gpt4 book ai didi

c# - 多线程同步的正确模式? (C#)

转载 作者:行者123 更新时间:2023-11-30 19:34:21 27 4
gpt4 key购买 nike

我有两个线程引用同一个变量——UI 线程和一个计时器线程。因此,我已将对它的访问包装在两个线程的锁定语句中。定时器线程的访问具有优先级——如果它正在使用变量并且 UI 线程也想要访问,我希望 UI 线程的操作完成,但只有在定时器线程的操作完成之后。

但是,计时器线程可能委托(delegate)回 UI 线程,因此 UI 线程需要有空闲时间来处理它。为了适应这一点,我让 UI 线程启动第三个线程来处理它的操作,以便它(第三个线程)可以等待计时器操作完成并且 UI 线程可用。锁定发生在第三个线程中。

对于这种同步,我应该使用什么样的正确模式?

最佳答案

一般的建议是,关键部分发生的任何事情都应该尽可能简单。特别是你应该避免嵌套锁。嵌套锁可能是死锁的根源。

根据您在“计时器”线程中所做的事情,您可能应该将关键部分与处理分开。定时器线程中的 IOW 仅从公共(public)变量中检索数据,然后进行其余处理,包括与锁外的 UI 线程交互。

添加第三个线程不会让你的生活更轻松

关于c# - 多线程同步的正确模式? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1697477/

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