1

次のコードを検討してください。

for (int i = 0; i < 1000000; i++)
{
    int i1 = i;
    Task.Run(() => Console.WriteLine(i1));
}

上記のコードを実行するときに 0 から 1000000 までのループを作成すると、ループが完了しません。このループが完了しないのはなぜですか?

4

3 に答える 3

0

以下は、Mono を使用した OS X で完全に動作します。

using System.Threading.Tasks;
using System;

public class Test
{
    public static int Main(string[] args)
    {
        for (int i = 0; i < 1000000; i++)
        {
            int i1 = i;
            Task.Run(() => Console.WriteLine(i1));
        }
        return 0;
    }
}
于 2013-10-05T10:37:50.250 に答える