变量初始化问题
在一个监控程序中,需要对多个监控对象进行初始化,每个对象初始化的时间较长,用循环的话需要等很长时间,我想同时对这些被监控的对象进行初始化,应该怎么办?如果用多线程的话应该怎么做,被监控对象的数量很多,有30个左右。求助大家,这种情况下是怎么处理的。
              
                  c#?多线程
              
------解决方案--------------------将对象初始化的任务放入Task中异步执行。
http://bbs.csdn.net/topics/390323957
------解决方案--------------------你可以试试这样,或许会有更好的办法
                private void Form1_Load(object sender, EventArgs e)
        	{
		for(int i;i<30;i++)
		{
			Thread t = new Thread(new ThreadStart(Start));
                	t.IsBackground = true;
			t.Name=i.ToString();
                	t.Start();
		}
		}		
		private void Start()
        	{
			//判断是哪个线程
            	   	int tid =Convert.ToInt32(Thread.CurrentThread.Name);
			变量初始化;
        	} 
------解决方案--------------------多线程未必能解决问题,如果你的每个检控对象共享某些数据,初始化如果不做互斥就会出错,做互斥有时候很麻烦,
如果各个监控对象互不相干,可以完全独立的初始化,可以用多线程,但线程数目应该和你的cpu核心数相同或者少一,
------解决方案--------------------如果是CPU计算型的,根据CPU核心数量确定线程数,否则根据任务数量确定线程数(30个线程没什么问题)。
试试支持.NET2.0的fastCSharp
            fastCSharp.threading.task task = new fastCSharp.threading.task(fastCSharp.pub.CpuCount);
            task.Add(...);
            ...
            task.Dispose(false);//true表示等待线程结束