我很困惑为什么我不能使用 Count() 方法中的 Dispatcher 上的“BeginInvoke”使这个测试计数器应用程序与 2 个(或更多)同时运行的计数器文本框一起工作。
您可以通过将 BeginInvoke 替换为 Invoke 来解决此问题。但这并不能解决我的困惑。
这是我正在谈论的示例代码:
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;
}
}