.net - .net多线程Winforms

标签 .net multithreading

我想从另一个线程获取某些控件的属性。
例如

string s = textBox1.Text;

而且我越来越不安全的线程异常。
万一我设置了属性,对我来说很清楚,我就调用了invoke,就像
textBox1.Invoke(new MethodInvoker..blablabla

但是我可以用“get”做什么?

最佳答案

您也应该使用invoke来获取:

string text = null;
someControl.Invoke((MethodInvoker) delegate {
    text = someControl.Text;
});

线程关联会影响所有操作;不只是写。另一个线程可能正在更改某些内容。对于一个字符串,您可能会以任何一种方式fl幸(由于原子引用读取),但这不应该被滥用;使用Invoke。

关于.net - .net多线程Winforms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4358556/

相关文章:

.net - Entity Framework - 在 Win Form 应用程序中接受对象更改(算法)

.net - 为什么不能在 F# 中参数化非部分事件模式?

c# - LINQ to SQL 更新中的(C# 变量的)默认值问题

ConsoleApp 中的 c# WebBrowser Print() 线程

c# - C#中静态类的反射

.net - vbScript System.Collections.ArrayList 对象不支持... list.Add

java - 缓冲读取器线程安全吗?

c# - 使用线程安全更新单例的属性

java - 无限循环的线程会导致CPU占用率过高吗

java - 请求 JavaFX 线程在不使用 Platform.runLater 的情况下调用一些代码