Tag: 进度条

从另一个线程和类更新C#GUI中的进度条

可能重复: 从另一个线程更新进度条 在我的程序中,我想将非GUI函数分离到另一个类,并在主类中保留与GUI相关的内容。 但是,当工作者类中的一个工作方法正在执行其工作时,我遇到了更新进度条的问题。 我知道我将不得不在这里使用multithreading,但我不明白如何。 我可能只是缺少简单的东西,但是当我查找有关它的信息时,似乎大多数教程都会讨论细节,但不能很好地解释大局。 我部分理解调用和委托命令是什么,但我真的不明白它们是如何交互的。 下面是我要做的事情的精简版。 如何修改此更新进度条,但保持窗口响应和重新绘制? 主要表格类: public partial class Form1 : Form { time_waster thing = new time_waster(); public Form1() { InitializeComponent(); progressBar1.Minimum = 0; progressBar1.Maximum = 100; } private void button1_Click(object sender, EventArgs e) { thing.something_that_takes_a_while(); } } 单独的工人类:class time_waster {public time_waster(){} public void something_that_takes_a_while() { int delay = 200; […]

如何更新进度条以使其顺利增加?

我正在使用WPF(C#)的进度条来描述进程的进度。 我的算法如下: DoSomethingCode1(); ProgressBar.SetPercent(10); // 10% DoSomethingCode2(); ProgressBar.SetPercent(20); // 20% … DoSomethingCode10(); ProgressBar.SetPercent(100); // 100% 没关系,但它会使进度条不连续。 有人可以告诉我一些让进度条轻柔更新的建议吗?

通过进度条显示执行进度

我有一个愚蠢的问题,但我被卡住了。 我正在执行一个存储过程表单,我的代码过程需要时间,所以为此我显示一个进度条,显示执行的进度,但存储过程执行,没有任何东西,我增加进度条的值。 这是我的代码 void btnYes_Click(object sender, EventArgs e) { if (DialogResult.Yes == MessageBox.Show(“Are you sure”, “”, MessageBoxButtons.YesNo)) { try { dbDataEntities db = new dbDataEntities(); string myquery = “DECLARE @return_value int EXEC @return_value = [dbo].[ssspUpdateMarksOfStudent] SELECT ‘Return Value’ = @return_value”; //progressbar1.Maximum = 5000; //progressbar1.value = ?; // how could i increment it // db.Database.ExecuteSqlCommand(“myquery”); } […]

使用Text和ProgressBars填充DataGridView

我正在创建一个multithreading应用程序,其中每个线程将在我的DataGridView显示为一行。 我希望每行中有一个ProgressBar ,表示相应的线程进度。 问题是,这可能吗? 如果是这样,怎么样?

BackgroundWorker WPF与Progress Bar的困难

我正在开发一个WPF,C#应用程序,我必须读取一个非常大的CSV文件并写入数据库。 这个过程需要很长时间,所以我想至少显示一个随着接近完成而增长的进度条。 现在,我在顶部有以下代码: private readonly BackgroundWorker worker = new BackgroundWorker(); 然后在循环内我有这个: worker.WorkerReportsProgress = true; worker.ReportProgress((100 * i) / 10000); 我有一个这样的私人子: private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { prgBar.Value = Math.Min(e.ProgressPercentage, 100); } 但我没有看到进度条更新或发生任何事情,程序仍然挂起。 难道我做错了什么? 更新:在这里尝试了MSDN指南http://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx ,我不知道如何使用该示例。 我当然调整了循环部分。 嘿。 它仍然闲置,没有任何更新。 哎呀,我想做的就是得到一个小的计数器,每次读取和添加一行时都会增加。 更新的代码: private BackgroundWorker bw = new BackgroundWorker(); public Process() { bw.WorkerReportsProgress = true; bw.WorkerSupportsCancellation = […]

想要使用任务并行库和进度报告来更新数据库

我开发了一个存储多个连接字符串的应用程序。 我只是迭代for循环并连接每个数据库并对每个数据库执行sql。 这样我用bulk sql语句更新多个数据库。 现在我需要使用现在的任务并行库来同时更新多个数据库,而不是一个接一个地循环更新。 我还想处理exception,并且还希望为多个数据库操作显示多个进度条。 应该有暂停和恢复function。 当我点击按钮时,将打开多个数据库连接,对于每个任务,我的表单中将添加一个新的进度条。 每个进度条将显示每个数据库操作进度。 当任何任务完成后,相应的进度条将从表单中删除。 任何人都可以使用TPL指导我如何使用示例代码。 这里我有一个代码更新一个进度条但我需要更新多个进度条。 int iterations = 100; ProgressBar pb = new ProgressBar(); pb.Maximum = iterations; pb.Dock = DockStyle.Fill; Controls.Add(pb); Task.Create(delegate { Parallel.For(0, iterations, i => { Thread.SpinWait(50000000); // do work here BeginInvoke((Action)delegate { pb.Value++; }); }); }); 更新问题 我是这样做的。 代码有效但所有进度条值依次增加。 我在winform应用程序中有一个表单和一个用户控件。 请看看我的代码并告诉我那里有什么问题。 主要代码 public partial class […]

AJAX进度条显示页面加载的加载进度百分比

如何使用进度条显示页面的加载百分比? …(类似于他们在flash中的显示方式) 谢谢

使用窗口应用程序中的数据表或数据集在gridview中添加进度条

我需要在WinForms应用程序中使用DataTable或DataSet在DataGridView中添加进度条,类似于: 我找到的所有地方都有如下代码: DataGridViewProgressColumn column = new DataGridViewProgressColumn(); column.HeaderText = “Status”; dataGridView1.Columns.Add(column); 并赋值: object[] row1 = new object[] { “test1”, “test2”, 50 }; 但我需要这个进度条在DataTable或DataSet中。

Windows 98风格的进度条

我使用的是Windows 7,因此我的进度条都具有绿色外观。 我想要一些更简单的东西,也许是类似于Windows 98进度条的东西。 有没有一种简单的方法可以更改进度条的样式,还是我必须手动重新创建它?

WPF C# – 从另一个线程更新进度条

我试图从其他类中运行的其他线程更新进度条。 为了解释我的所作所为,我认为一张图片会更好。 我想更新// HERE点的进度条: 我尝试过使用委托,尝试使用ReportProgress,我认为我基本上试图使用谷歌在前100个结果中报告的所有内容,但没有成功。 我还在学习WPF,这可能是一种愚蠢的方式,我正在寻找一种快速而肮脏的方式来完成工作,但随时告诉我应该为更清洁的应用程序重新设计。 编辑 :更多代码。 在ExecutorWindow.xaml.cs中: public void RunExecutor() { // CREATE BACKGROUNDWORKER FOR EXECUTOR execBackground.DoWork += new DoWorkEventHandler(execBackground_DoWork); execBackground.RunWorkerCompleted += new RunWorkerCompletedEventHandler(execBackground_RunWorkerCompleted); execBackground.ProgressChanged += new ProgressChangedEventHandler(execBackground_ProgressChanged); execBackground.WorkerReportsProgress = true; execBackground.WorkerSupportsCancellation = true; // RUN BACKGROUNDWORKER execBackground.RunWorkerAsync(); } private void execBackground_DoWork(object sender, DoWorkEventArgs e) { myExecutor = new Executor(arg1, arg2); myExecutor.Run(); } […]