|
分類:[C#]
はじめまして、先ほども質問させていただきましたが、
質問の仕方が悪かったと思い、再度、質問させてください。
やりたいことは、ワーカースレッドからフォームのテキストボックスに値を入れることです。
namespace MultiTask2
{
delegate void SetTextCallback(string text);
public partial class Form1 : Form
{
private Class_A Class_A_Worker;
private Thread Class_A_Thread;
public Form1()
{
InitializeComponent();
}
public void SetText(string text)
{
if (this.textBox1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.textBox1.Text = text;
}
this.Refresh();
}
private void button1_Click(object sender, EventArgs e)
{
Class_A_Worker = new Class_A();
Class_A_Thread = new Thread(Class_A_Worker.DoWork);
Class_A_Thread.Start();
}
}
public class Class_A
{
public void DoWork()
{
Form1 form1 = new Form1();
form1.SetText("ABC");
}
}
}
上記コードですと、エラーも出ませんが、テキストボックスに何も表示されません。
根本的に、考え方が違うのか、それともどこが間違っているのか・・・
どうか、よろしくお願いします。
|