c# - 为什么以下 C# 程序使用有限 (10) 个线程?
问题描述
为什么以下程序的输出总是 10 个线程?我试图将线程池的最大线程数更改为 500,但它没有改变任何东西。
class Program
{
private static object _locker = new object();
static void Main(string[] args)
{
var data = new Dictionary<int, DateTime>();
Parallel.For(0, 100000000, new ParallelOptions { MaxDegreeOfParallelism = 500 },
i =>
{
lock (_locker)
{
if (!data.ContainsKey(Thread.CurrentThread.ManagedThreadId))
{
data.Add(Thread.CurrentThread.ManagedThreadId, DateTime.Now);
Console.WriteLine($"{DateTime.Now}, {Thread.CurrentThread.ManagedThreadId}");
}
}
});
}
}
解决方案
推荐阅读
- google-cloud-platform - 如何在 Google Cloud Platform CLI 中切换配置 - Cloud Shell
- python - 当列表中没有值时,list.count() 表示 1
- python - 在嵌套字典中添加项目
- c++ - 按唯一标识符描述数字列表
- php - PHP 仅将 SQL 拉为文本
- javascript - 在以下代码中制作反应应用程序时收到“解析错误:意外的令牌,预期的”;“”
- r - x * w 中的 dudi.hillsmith 错误:二元运算符的非数字参数
- amazon-web-services - Amazon S3 生命周期规则:存档文件具有最近的日期
- javascript - 通过选择选项 javascript 更改品牌详细信息
- c# - 映射列表
- > 到具有最大值对象属性的字典