posted by 방랑군 2012. 1. 17. 02:54
using System;

using System.Threading;

namespace VTFramework.ThreadEx
{
/// <summary>
/// vS_Thread에 대한 요약 설명입니다.
/// 
///  쓰레드에 인수를 넘기는 방법.
/// 
/// - Example
/// string strMsgInfo = "전달 값";
/// Thread td = vCS_ThreadEx.CreateThread(new vCS_ThreadEx.dg_ThreadProc(ThreadProc),strMsgInfo);
/// td.Start();
/// 
/// private void ThreadProc(object[] p) 
/// {}
/// </summary>
public class vCS_ThreadEx
{
public vCS_ThreadEx()
{
//
// TODO: 여기에 생성자 논리를 추가합니다.
//
}

public delegate void dg_ThreadProc(object[] o); 

private class ParamProc 

public object[] param; 
public dg_ThreadProc proc; 

public void work() 
proc(param);

public void work(object objValue) 
proc(param);
}   

public static Thread CreateThread(dg_ThreadProc proc, params object[] arg) 
ParamProc pp = new ParamProc(); 
pp.param = arg; 
pp.proc = proc; 
Thread t = new Thread(new ThreadStart(pp.work));
return t; 
}
}