【发布时间】:2017-11-09 02:35:10
【问题描述】:
我想在一个线程中更新 TextBox.Text,但它不起作用,我收到此错误(法语):
System.InvalidOperationException : 'Operation inter-threads non valide : le contrôle 'TextBOX' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé。'
英文(谷歌翻译)看起来像:
System.InvalidOperationException: '无效的线程间操作:'TextBOX'控件已从创建它的线程以外的线程访问。'
我该怎么做? 这是我的代码:
using System;
using System.IO;
using System.Windows.Forms;
using System.Threading.Tasks;
namespace Ace
{
public partial class Checker : Form
{
public Checker()
{
InitializeComponent();
}
private void Checker_Load(object sender, EventArgs e)
{
status("Checking ...");
check();
status("Done !");
}
public void check()
{
int threads = 10;
var lines = File.ReadLines("test.txt");
Parallel.ForEach(lines, new ParallelOptions { MaxDegreeOfParallelism = threads }, line =>
{
TextBox.Text = TextBox.Text + line + "\n"; // THIS LINE
});
}
}
}
提前致谢。
【问题讨论】:
标签: c# multithreading winforms