Stackを使っているのですが、以下のようなプログラムで0〜9999までの数字をPushして、
次はPopを行いながらファイルに書き込むと5000〜9999までしか書き込まれません。
以下のプログラムで何か間違っていますでしょうか。

using System;
using System.IO;
using System.Collections;
using System.Text;
namespace ConsoleApplication1
{
 class Class1
 {
  [STAThread]
  static void Main(string[] args)
  {
   Stack tmpStack = new Stack();
   Stack syncedStack = Stack.Synchronized(tmpStack);
   for (int i=0; i<10000; i++)
   {
    syncedStack.Push(i.ToString());
   }
   StreamWriter sw = new StreamWriter(@"C:\Out.txt", false, Encoding.Default);
   for (int i=0; i<syncedStack.Count; i++)
   {
    sw.WriteLine(syncedStack.Pop().ToString());
   }
   sw.Close();
   Console.WriteLine("終わりました。");
  }
 }
}