关于WPF跨线程访问控件问题。。。

AnthemSword 2011-07-21 09:55:49
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{

public MainWindow()
{
InitializeComponent();
//ProgressBarLoading();
}
//模拟进度条不停的动的委托
public delegate void ProgressBarLoadingDel();
ProgressBarLoadingDel progressbarloadingdel = null;
System.Threading.Thread th = null;


//模拟进度条不停的动的方法(用于添加到委托)
public void AddDel_ProgressBarLoading()
{
while (progressbar.Value <10)
{
System.Threading.Thread.Sleep(200);
progressbar.Value++;
//这里本来还有一个if来判断是不是到10了到10了变为0来保证progressbar不停的运动
}

}

//模拟进度条不停地动的跨线程方法
void Invoke_ProgressBarLoading()
{
progressbarloadingdel = new ProgressBarLoadingDel(AddDel_ProgressBarLoading);
progressbar.Dispatcher.Invoke(progressbarloadingdel, null);

}

//模拟进度条不停地动的方法
void ProgressBarLoading()
{
th = new System.Threading.Thread(Invoke_ProgressBarLoading);
th.IsBackground = true;
th.Start();//开始

}


private void go_Click(object sender, RoutedEventArgs e)
{
ProgressBarLoading();
}
}



一个progressbar控件和一个button控件
点击button progressbar不停的进行

但是依然会形成窗体阻塞啊。。。请问为什么。。。
...全文
996 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
636f6c696e 2011-07-28
  • 打赏
  • 举报
回复
看不出来...试试begininvoke?
sugarbelle 2011-07-28
  • 打赏
  • 举报
回复
一起学习..我也在搞wpf.

110,533

社区成员

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

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

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