English 中文(简体)
C# 跨线呼吁更新进展障碍
原标题:C# Cross-thread call to update progress bar

I have a winform that reads in a csv file on a second thread an writes the file data to a console. The main form has a progress bar. I wish to update the progress bar on the main form based on the lines of data read in the second thread. In my second thread function I use:

pBar.BeginInvoke((MethodInvoker)delegate
{
    this.pBar.Value = (int) (((double) nRows) / ((double) fileLines));
});

不用说这似乎并不可行。 任何建议都将受到高度赞赏。

As an aside, should I use pBar.Show() and pBar.Hide() or set pBar.Visible in the second thread to show/hide the progress bar?

Thank you.

问题回答

你可能只是错失了100倍的繁文 the,无法将:

this.pBar.Value = 100*nRows/fileLines;

假设<代码>nRows 数值在<条码>0和<条码>>>之间。 然后,你的代码将始终将进度条码定为<0>或1


我是否应当使用<条码>pBar.Show(和pBar.Hide()或pBar.Visible,在二读中显示/hide the progress bar?

不管你在二读中做什么,你都不应称之为“全球倡议”控制方法。 使用<代码>BeginInvoke <>/code>或Invoke至marshal onto the GUI thread.





相关问题
Bring window to foreground after Mutex fails

I was wondering if someone can tell me what would be the best way to bring my application to the foreground if a mutex was not able to be created for a new instance. E.g.: Application X is running ...

How to start WinForm app minimized to tray?

I ve successfully created an app that minimizes to the tray using a NotifyIcon. When the form is manually closed it is successfully hidden from the desktop, taskbar, and alt-tab. The problem occurs ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

Handle DataTable.DataRow cell change event

I have a DataTable that has several DataColumns and DataRow. Now i would like to handle an event when cell of this DataRow is changed. How to do this in c#?

Apparent Memory Leak in DataGridView

How do you force a DataGridView to release its reference to a bound DataSet? We have a rather large dataset being displayed in a DataGridView and noticed that resources were not being freed after the ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

WPF-XAML window in Winforms Application

I have a Winforms application coded in VS C# 2008 and want to insert a WPF window into the window pane of Winforms application. Could you explain me how this is done.

热门标签