gpt4 book ai didi

c# - 锁定一个winforms控件

转载 作者:行者123 更新时间:2023-11-30 12:18:51 26 4
gpt4 key购买 nike

我需要确保,一旦执行命中一个方法,该方法接收到的控制不会被另一个线程更改。基本上,我是这样想的:

private void doSomeWork(Control control) {
lock (control) {
// do some stuff with the control...
}
}

这是个坏主意吗?

编辑:

实际上,我正在尝试做的是确保在我执行控件的某些方法(顺便说一句,将通过反射执行)时控件不会被另一个线程处理。

最佳答案

在一个运行良好的应用程序中,Windows 窗体控件已经被限制在一个线程中。如果任何线程试图访问在不同线程中创建的控件,将抛出异常。

您的代码没有任何问题,只是知道现在它大部分没用,除非您破解保护措施(这是可能的)。

通常,当您在工作线程中创建或操作数据时,工作线程会向 UI 线程发送事件以更新 UI。工作线程绝不应该更新 UI 本身,它会自动失败。

关于c# - 锁定一个winforms控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1252857/

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