Dispatcher Invoke (…) vs BeginInvoke (…) confusión

Estoy confundido por qué no puedo hacer que esta aplicación de contador de prueba funcione con 2 (o más) cajas de contratexto ejecutadas simultáneamente con el uso de "BeginInvoke" en mi Dispatcher en el método Count ().

Puede resolver el problema reemplazando el BeginInvoke por un Invoke. Pero esto no resuelve mi confusión.

Aquí está el código de ejemplo del que estoy hablando:

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;
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta