0
Можно создать дубликат:
How to update GUI from another thread in C#?C# - Заправка нити в формах
У меня есть форма с textBox1 и TextBox2. Мне нужен очень простой пример дополнительного потока для заполнения textBox2, чтобы понять принцип. До сих пор я использую MessageBox для отображения значения, но вместо этого хочу использовать textBox2. Вот мой код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace Threads_example
{
public partial class Form1 : Form
{
Thread t = new Thread(t1);
internal static int x1 = 1;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
static void t1()
{
do
{
x1++;
MessageBox.Show("x1 - " + x1.ToString());
}
while(x1<10);
}
private void button1_Click(object sender, EventArgs e)
{
t.Start();
for (int x = 1; x < 100000; x++)
{
textBox1.Text = x.ToString();
textBox1.Refresh();
}
}
}
}
Нити не могут напрямую обращаться к компонентам пользовательского интерфейса. Вам нужно использовать 'Control.Invoke'. Поиск здесь или через Google должен показать много примеров. – ChrisF