gpt4 book ai didi

C# 调用 Action 跨线程访问

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

大家好,我是编程新手。

目前我的应用程序使用委托(delegate)来处理/执行驻留在另一个类/对象中的方法。

但我收到一条错误消息,指出它们驻留在单独的线程中。所以在网上搜索后我想到了这个:

this.Invoke(new Action(delegate() { this.ChatRichTextBox.AppendText(EventArgs.commMessage); }));

这很好用,我不知道发生了什么。我刚刚粘贴了代码,它起作用了。

目前,尽管我需要以不同的方式执行此操作,因为编译器说它不能执行此操作中的 > < != 操作。

请建议如何最好地实现它?

非常感谢。

最佳答案

Access to Windows Forms controls is not inherently thread safe. If you have two or more threads manipulating the state of a control, it is possible to force the control into an inconsistent state. Other thread-related bugs are possible, such as race conditions and deadlocks. It is important to make sure that access to your controls is performed in a thread-safe way.

It is unsafe to call a control from a thread other than the one that created the control without using the Invoke method.

关于C# 调用 Action 跨线程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2119113/

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