스레딩, 델리게이트 및 배경 작업자로 약간의 게임을하기 위해 몇 가지 작은 응용 프로그램을 만들었습니다. 그 중 하나에 약간 문제가 있습니다. 텍스트 상자, 단추 및 richttext가있는 Windows 양식이 있습니다. 내가 버튼을 누르면 , 텍스트 상자의 텍스트는 다음과 같이 클래스를 인스턴스화 할 수 있었던 파라미터로 사용된다 :C# 스레딩 문제
public partial class Form1 : Form
{
private BackgroundWorker backgroundWorker;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += new DoWorkEventHandler(worker_DoWork);
backgroundWorker.RunWorkerAsync();
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
new Thread((ThreadStart)delegate()
{
this.BeginInvoke((ThreadStart)delegate()
{
foreach (string line in textBox1.Lines)
{
Dig digger = new Dig(line, textBox1.Text);
digger.DomainChecked += new Dig.DomainCheckedHandler(OnUpdateTicker);
string response = digger.GetAllInfo();
richTextBox1.AppendText(response);
Application.DoEvents();
}
});
}).Start();
}
void OnUpdateTicker(string msg)
{
new Thread((ThreadStart)delegate()
{
this.BeginInvoke((ThreadStart)delegate()
{
label4.Text = msg;
Application.DoEvents();
});
}).Start();
}
}
나는 'textBox1.Lines'로 실행 디버깅 할 때 유형의 예외가 발생했습니다 ' Microsoft.VisualStudio.Debugger.Runtime.CrossThreadMessagingException ' 이 문제를 해결하는 방법에 대한 팁?