最近我一直在开发一些多线程控制台应用程序,想知道如何实现这一点。我使用以下代码来控制应用程序创建的线程数量:
foreach(string s in File.ReadAllLines("file.txt")){
while (threads >= maxThreads) ;
Thread t = new Thread(() => {
threads++;
//thread code - make network request using 's'
Console.WriteLine("TEST");
threads--;
Thread.CurrentThread.Abort();
});
t.start();
}
然而,由于while循环,所创建的
Console.WriteLine
方法被阻塞,直到下一个空闲线程可用才会显示出来。有什么方法可以防止此while循环阻止Console.WriteLine
调用吗?编辑-反转while循环条件。
Thread.Sleep(1)
。 - Blorgbeard