C#

스레드에서 함수 호출시 매개변수 넘기기

by kay posted Oct 29, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

일반적인 스레드 사용시에는 아래와 같이 사용했는데요


Thread t1 = new Thread(new ThreadStart(GoGo1));
t1.Start();  

Thread t2 = new Thread(new ThreadStart(GoGo2));
t2.Start();  



그런데 변수를 넘겨야하는데 어떻게 해야할지..고민하고 또 고민하고 찾아서 정리해보니 아래와 같습니다.

전역변수! 사용! or 클래스 사용!


delegate void RunDelegate(string msg);

public void WorkerThreadMethod(string msg)
{
	txtLog.AppendText(Environment.NewLine + Environment.NewLine + msg);
}

 private void fnShowMsg(string msg)
{
	string sendMsg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss").ToString() + "  : " + msg;
	RunDelegate runDelegate = new RunDelegate(this.WorkerThreadMethod);
	runDelegate.BeginInvoke(sendMsg, null, null);
	txtLog.ScrollToCaret(); 
}

fnShowMsg("Start - xxx ...");  



참고 사이트 : http://blog.daum.net/starkcb/70