WPF的多线程方法重入的问题,请求各位指教!!
有两个控件,一个是Button,叫做bt,一个是TextBox,叫TB;程序要实现的功能是点击Button控件,TextBox上面显示1000。在程序中创建两个线程,分享同一个代码cout();Cout() 是计算1000次的功能。按照设想,点击按钮后,只会显示1000,但是现在显示出2000,程序哪里出错了?为什么实现不了多线程的方法重入了??求WPF和C#大牛解答!以下为代码。
namespace 多线程方法重入
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void bt_Click(object sender, RoutedEventArgs e)
{
ThreadStart a = new ThreadStart(Cout);
Thread thread1 = new Thread(a);
thread1.IsBackground = true;
thread1.Start();
ThreadStart b = new ThreadStart(Cout);
Thread thread2 = new Thread(b);
thread2.IsBackground = true;
thread2.Start();
}
public void Cout()
{
for (int i = 0; i < 1000;i++)
{
Dispatcher.Invoke(new Action(() =>
{
int a = int.Parse(TB.Text);
a++;
TB.Text = a.ToString();
}));
}
}
}
}