というわけで
        private void sum100()
        {
            int s = 0;
            for (int i = 1; i <= 100; i++) {
                s += i;
                int s_ = s;
                this.Dispatcher.BeginInvoke((Action)delegate{
                    this.Label1.Content = s_.ToString("0000");
                });
                Thread.Sleep(0);
            }
        }
としてみたら希望通りの動作になったんだが、
                Thread.Sleep(0);
をコメントアウントすると、最後の5050しか表示されないんだけど、
ディスパッチャスレッドの優先度って低いの?