private const int Total = 500000;
    private static volatile int _count = 0;
    private static void Main()
    {
        Task task = Task.Factory.StartNew(Decrement);
        for (int i = 0; i < Total; i++)
        {
            _count++;
        }
        task.Wait();
        Console.WriteLine(_count);
        Console.ReadLine();
    }
    private static void Decrement()
    {
        for (int i = 0; i < Total; i++)
        {
            _count--;
        }
    }
結果が0の場合もあれば、-xxxxxxの場合もあります。どうしてか分かりません。誰かがそれを説明し、正しい使用法を教えてもらえますか?