Dispatcher Invoke (…) vs BeginInvoke (…) zamieszanie

Jestem zdezorientowany, dlaczego nie mogę sprawić, by ta aplikacja licznika testowego działała z 2 (lub więcej) jednoczesnymi uruchomionymi kontratakami z użyciem „BeginInvoke” na moim Dispatcherze w metodzie Count ().

Możesz rozwiązać ten problem, zastępując BeginInvoke przez Invoke. Ale to nie rozwiązuje mojego zamieszania.

Oto przykładowy kod, o którym mówię:

public class CounterTextBox : TextBox
{
    private int _number;

    public void Start()
    {
        (new Action(Count)).BeginInvoke(null, null);
    }

    private void Count()
    {
        while (true)
        {
            if (_number++ > 10000) _number = 0;
            this.Dispatcher.BeginInvoke(new Action(UpdateText), System.Windows.Threading.DispatcherPriority.Background, null);    
        }
    }

    private void UpdateText()
    {
        this.Text = "" + _number;
    }
}

questionAnswers(1)

yourAnswerToTheQuestion