Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新progressbar';来自另一个线程的值?_C#_Delegates_Progress Bar_Backgroundworker_Multithreading - Fatal编程技术网

C# 更新progressbar';来自另一个线程的值?

C# 更新progressbar';来自另一个线程的值?,c#,delegates,progress-bar,backgroundworker,multithreading,C#,Delegates,Progress Bar,Backgroundworker,Multithreading,我的表单创建一个backgroundworker,每6秒检查一次。结果是1-100,我想显示这个 但是,如果我直接这样做,我会得到som交叉线程错误,所以我在一些研究代表之后会这样做 我在Form1类中创建了: public delegate void SetProgressbarValueDelegate(int val); 但是我如何“连接它”来实际更新progressbar呢 谢谢假设您使用的是WinForms,BackgroundWorker类将引发一个事件,该事件将自动封送回您的UI

我的表单创建一个backgroundworker,每6秒检查一次。结果是1-100,我想显示这个

但是,如果我直接这样做,我会得到som交叉线程错误,所以我在一些研究代表之后会这样做

我在Form1类中创建了:

public delegate void SetProgressbarValueDelegate(int val);
但是我如何“连接它”来实际更新progressbar呢


谢谢

假设您使用的是WinForms,
BackgroundWorker
类将引发一个事件,该事件将自动封送回您的UI线程。您应该在此事件的处理程序中更新用户界面


有一些简单的示例说明如何在中使用
BackgroundWorker

假设您使用的是WinForms,
BackgroundWorker
类将引发一个事件,该事件将自动封送回UI线程。您应该在此事件的处理程序中更新用户界面


有一些简单的例子说明了如何在中使用
BackgroundWorker

好的,它最初是有效的。但如果我有一个值,让我们保持99,并希望它成为progressbar的新值,我如何发送它?我正在做(发送者作为后台工作人员)。报告进度(99);在worker_DoWork内部,但实际上我想传输数据,而不仅仅是数字(用于其他控件)。很抱歉,我无意中对此进行了否决表决,尽管我的意图是向上投票。在编辑问题之前,我无法更改它。对不起,对不起!但请编辑,我会撤销我的愚蠢行为。好的,它最初是有效的。但如果我有一个值,让我们保持99,并希望它成为progressbar的新值,我如何发送它?我正在做(发送者作为后台工作人员)。报告进度(99);在worker_DoWork内部,但实际上我想传输数据,而不仅仅是数字(用于其他控件)。很抱歉,我无意中对此进行了否决表决,尽管我的意图是向上投票。在编辑问题之前,我无法更改它。对不起,对不起!但请编辑,我会撤销我的愚蠢行为。