代碼如下:
Thread thread1=null,thread2=null,thread3=null;
int total=3;//循環次數
private void aa()
{
object tmpObject=null;
Thread tmpThread=null;
for(int i=1;i<=total;i++)
{
tmpObject=UserMethod.getObject(this,"T_star"+i.ToString().Trim());
if(tmpObject != null)
{
tmpThread=tmpObject as Thread;
if(i==1)
tmpThread=new Thread(new ThreadStart(bb1));
else if(i==2)
tmpThread=new Thread(new ThreadStart(bb2));
else
tmpThread=new Thread(new ThreadStart(bb3));
tmpThread.Start();
}
}
}
/// <summary>
/// 根据實例對象名称和所屬的對象,返回此對象(包含控件、變量等對象)
/// </summary>
/// <param name="instanceObject">查詢對象所屬的對象</param>
/// <param name="objectName">要查詢的對象名稱</param>
/// <returns>查詢對象,否則為Null</returns>
public static object getObject(object instanceObject,string objectName)
{
object resultValue=null;
Type myType = instanceObject.GetType();
System.Reflection.FieldInfo[] myFieldInfo = myType.GetFields(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public);
for(int i=0;i<myFieldInfo.Length;i++)
{
if(myFieldInfo[i].Name.Trim().ToUpper()==objectName.Trim().ToUpper())
{
resultValue=myFieldInfo[i].GetValue(instanceObject);
break;
}
}
return resultValue;
}
private void bb1()
{
}
private void bb2()
{
}
private void bb3()
{
}當我的循環有30次時,如何將這30個方法只用一條tmpThread=new Thread(new ThreadStart(方法));語句來控製啟動呀?

解决方案 »

  1.   

    to 那如何用循環來啟動30個線程呀?要循环开启线程,使用参数来标明线程类别,然后到同一入口函数根据参数进行switch分发。vs05创建线程,可以带有参数,这我就不说了,你参看帮助。如果是03的话,就需要通过线程类来实现。
    参看:
    http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx线程入口函数做成类似于如下形势:
    private void ThreadFun()
    {
         switch( ThreadType )
         {
            case ...:
                Func1();
                break;
            case ...:
                Func2();
                break;
            ....
          }
    }