进度条没有显示进度结果?

时间:2010-03-25 06:50:43

标签: c# .net progress-bar

我在我的应用程序中使用了进度条..我的应用程序工作正常但进度条是空白的..它没有显示工作进度有什么问题?

3 个答案:

答案 0 :(得分:9)

可能您正在主GUI线程中执行工作。这会导致所有GUI事件延迟,直到任务完成。

改为使用BackgroundWorker并使用其ProgressChanged事件来更新进度条。

另请记住在后台工作人员上设置WorkerReportsProgresstrue

答案 1 :(得分:0)

请参阅StackOverflow的这个问题:

Updating DataGrid From a BackGroundWorker

我假设您必须使用Invoke方法访问UI对象。

如果没有尝试使用以下方法(在拥有控件的底层窗口句柄的线程上执行指定的委托,使用指定的参数列表。):


 //In Form.Designer.cs 

ProgressBar progressBar= new ProgressBar ();

//In code behind under Background worker method ProgressVlaueSetter SetProgressValueDel = SetProgressValue;
if (progressBar.InvokeRequired) {
progressBar.Invoke(SetProgressValueDel , 20); }

private delegate void ProgressVlaueSetter (intvalue);

//Set method invoked by background thread private void SetProgressValue(intvalue) { progressBar.Value= value; }

答案 2 :(得分:0)