c#编写了一个多线程程序但是出现40个线程同时运行就自动关闭程序但如果只调用39个线程就不会出现这个问题
问题大致如题:线程代码之一:publicvoidThreadProc1(){while(true){ints=1;intu;switch(infoClass.IPmin)...
问题大致如题:
线程代码之一:
public void ThreadProc1()
{
while (true)
{
int s = 1;
int u;
switch (infoClass.IPmin)
{
case "101":
u = 100 + s;
che(u, s);
break;
case "151":
u = 150 + s;
che(u, s);
break;
case "201":
u = 200 + s;
che(u, s);
break;
}
Thread.Sleep(1000);//将当前进程阻塞指定的毫秒数
}
}
线程调用方法:
Thread t1 = new Thread(new ThreadStart(ThreadProc1));
t1.Start();
调用的方法没错,39个线程就能完好运行,就第40个线程不行了 展开
线程代码之一:
public void ThreadProc1()
{
while (true)
{
int s = 1;
int u;
switch (infoClass.IPmin)
{
case "101":
u = 100 + s;
che(u, s);
break;
case "151":
u = 150 + s;
che(u, s);
break;
case "201":
u = 200 + s;
che(u, s);
break;
}
Thread.Sleep(1000);//将当前进程阻塞指定的毫秒数
}
}
线程调用方法:
Thread t1 = new Thread(new ThreadStart(ThreadProc1));
t1.Start();
调用的方法没错,39个线程就能完好运行,就第40个线程不行了 展开
2个回答
展开全部
楼上正解,不过也可以自己写个线程池来管理和调度你的线程,你这种情况就是一下子运行太多线程的过,可以让线程以队列的形式一个一个执行,并发最好不要太多,CLR有线程管理和控制机制的,不能无限制的并发线程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询