C# 给多线程传递参数
首先,定义一个带object参数的方法,代码如下:
public void ThreadMethod(object ParObject) { List<string> stid = null; SqlConnection con = null; SqlCommand cmd = null; toExport_Mutex.whatOperation optin = new toExport_Mutex.whatOperation(); try { object[] objArray = (object[])ParObject; stid = (List<string>)objArray[0]; con = (SqlConnection)objArray[1]; cmd = (SqlCommand)objArray[2]; optin = (toExport_Mutex.whatOperation)objArray[3]; } catch (Exception ex) { } UpdateSQL(stid, con, cmd, optin); }
然后,单开一个线程并调用这个方法,并传入参数
void MainUpdate(List<string> listTids, SqlConnection conn, SqlCommand cmd, toExport_Mutex.whatOperation op) { ParameterizedThreadStart pts = new ParameterizedThreadStart(ThreadMethod); Thread t = new Thread(pts); object o = new object[] { listTids, conn, cmd, op }; t.Start(o); }