gpt4 book ai didi

c# - 在 C# 或 .NET 中,有没有办法阻止其他线程调用特定线程上的方法?

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

我有一个带有 BackgroundWorker 的 Windows 窗体应用程序。在主窗体的方法中,显示了一个 MessageBox,用户必须单击 OK 按钮才能继续。同时,当显示消息框时,BackgroundWorker 完成执行并调用 RunWorkerCompleted 事件。在我分配给该事件的方法中,它在 UI 线程上运行,在窗体上调用 Close 方法。即使显示消息框的方法仍在运行,UI 线程也不会阻止其他线程调用它的方法。因此在窗体上调用 Close 方法。我想要的是让 UI 线程阻止其他线程的调用,直到带有消息框的方法完成。有没有简单的方法可以做到这一点?

最佳答案

我认为您应该对事件的处理方式更加自律。您不想停止在 UI 线程上调用的方法,因为方法调用机制与允许鼠标和键盘事件等事件起作用的机制相同。如果你阻止方法调用,你也会阻止它。相反,您需要以某种方式延迟方法。您可能需要编写自己的同步代码来执行此操作。

关于c# - 在 C# 或 .NET 中,有没有办法阻止其他线程调用特定线程上的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2746878/

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