WPF的多线程方法重入的问题,请求各位指教!!

newcomducs 2013-11-08 11:24:05
有两个控件,一个是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();
}));
}
}
}
}
...全文
87 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
既然方法都是在主线程排队执行,那么就单线程没有区别,而且更慢。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧