C#多线程
1、多线程使用一般方法
Thread t = new Thread(new ThreadStart(Method));
Method为无参函数,若要传递参数,可以将Method的参数设置为object类型。
2、多线程处理List
最近碰到了多线程处理List的问题,开始的想法是开启5个线程,每个线程轮流获取List中的字符串,但是处理完一个字符串就有一个问题,线程无法重用,线程重用可以用到ThreadPool,不想用线程池,所以自己想办法。
3、自己new线程
最终解决方案:因为List的个数是固定的,所以可以把List分成5段,每段new一个线程去处理。这里有一个问题需要处理,就是List下标传参问题,我的方法是创建一个新的类:
Class MultiThread{
int start;
int end;
void mehod()
{
…
}
}
这样,new MultiThread后(下标在new的时候赋值),调用mehod,去执行,但是这个方法主线程不会等待子线程执行完,所以需要有一个判定机制:
while(子线程执行完毕条件)条件可以根据自己实际情况去判定。