نوشته شده توسط
haghshenasmahdi
با سلام و احترام
دوستان من یک Thread در برنامه ام دارم .مشکل اینه داخل این نخ در تکست باکس ها و لیبل ها نمیتونم چیزی بنویسم . لطفا کمک کنید.
thread.png
ببینید کنترل های فرم مثل تکست باکس ، لیبل و ... با ترد UI پیش فرض خود برنامه مدیریت میشن و برای همین شما نمی تونید با تردی غیر از این ، مقادیر شون رو تغییر بدید
و در اینصورت خطای Cross-Thread Operation رو دریافت می کنید ، برای اینکه این مشکل رخ نده باید از تابع Invoke استفاده کنید.
public void SetText()
{
label1.Invoke((MethodInvoker)(() => label1.Text = "Hello"));
}
private void Form1_Load(object sender, EventArgs e)
{
Thread t1 = new Thread(SetText);
t1.Start();
}