C#线程 在某一时间内,只有N个线程在并发执行,其余都在队列中的实现 20
我要实现的功能就是比方说我有1500条要操作的数据,而现在我需要20个线程同时去执行(一条要操作的数据一个线程),而剩下要操作的数据,等20线程里有完成的线程的时候,再补...
我要实现的功能就是比方说我有1500条要操作的数据,而现在我需要20个线程同时去执行(一条要操作的数据一个线程),而剩下要操作的数据,等20线程里有完成的线程的时候,再补充进去。直到1500条数据全部操作完成。
怎样的程序怎么写? 展开
怎样的程序怎么写? 展开
展开全部
方法一:线程中管理线程
public class Proc
{
int n = 0;
public void ProcStart()
{
Thread t = new Thread(new ThreadStart(ThreadMen));
t.Start();
}
void ThreadMen()
{
Thread t;
while(true)
{
if(n<20)
{
t = new Thread(new ThreadStart(ProcData));
t.Start();
}
else
Thread.Sleep(100);
}
}
void ProcData()
{
////处理
}
}
方法二:
public class Proc
{
int n = 0;
public void ProcStart()
{
while(true)
{
Thread t = new Thread(new ThreadStart(ProcData));
t.Start();
Thread.Sleep(100);
}
}
void ProcData()
{
if(n>20)
return;
else
{
////处理
}
}
}
public class Proc
{
int n = 0;
public void ProcStart()
{
Thread t = new Thread(new ThreadStart(ThreadMen));
t.Start();
}
void ThreadMen()
{
Thread t;
while(true)
{
if(n<20)
{
t = new Thread(new ThreadStart(ProcData));
t.Start();
}
else
Thread.Sleep(100);
}
}
void ProcData()
{
////处理
}
}
方法二:
public class Proc
{
int n = 0;
public void ProcStart()
{
while(true)
{
Thread t = new Thread(new ThreadStart(ProcData));
t.Start();
Thread.Sleep(100);
}
}
void ProcData()
{
if(n>20)
return;
else
{
////处理
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询