Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 线程池中的方法调用堆栈_C#_Task_Threadpool - Fatal编程技术网

C# 线程池中的方法调用堆栈

C# 线程池中的方法调用堆栈,c#,task,threadpool,C#,Task,Threadpool,我有这行资料来源 for (int i = 0; i < 100; i++) { Task.Run(()=> Console.WriteLine(i)); } for(int i=0;iConsole.WriteLine(i)); } 我期望输出像0,1,2,3,…,99,但我得到的是100100,…,100 我不是在要求一个解决方案来获得我想要的输出,我只是在问线程池中正在排队的调用是什么 我想象类似于Console.Writeline(I上的参考)的东西正在排队等待线程

我有这行资料来源

for (int i = 0; i < 100; i++)
{
   Task.Run(()=> Console.WriteLine(i));
}
for(int i=0;i<100;i++)
{
Task.Run(()=>Console.WriteLine(i));
}
我期望输出像0,1,2,3,…,99,但我得到的是100100,…,100

我不是在要求一个解决方案来获得我想要的输出,我只是在问线程池中正在排队的调用是什么

我想象类似于
Console.Writeline(I上的参考)
的东西正在排队等待线程池


有人能解释一下我的代码是如何处理的以及为什么吗?

在使用变量之前,您需要创建一个本地副本,因为
i
在线程看到它时会发生变化:

for (int i = 0; i < 100; i++)
{
   var x = i;
   Task.Run(()=> Console.WriteLine(x));
}
for(int i=0;i<100;i++)
{
var x=i;
Task.Run(()=>Console.WriteLine(x));
}

您是否至少尝试过在谷歌上搜索“C#在循环中启动任务”?第一个结果指向类似的问题,正如我所说的,我不是在寻找解决方案。我正在查找线程池中正在排队的内容。(是的,sent不是正确的单词)@canton7最后一点不正确