Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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# 从WPF中的backgroundworker更新progressbar_C#_Multithreading_Backgroundworker - Fatal编程技术网

C# 从WPF中的backgroundworker更新progressbar

C# 从WPF中的backgroundworker更新progressbar,c#,multithreading,backgroundworker,C#,Multithreading,Backgroundworker,我正在尝试使用BackgroundWorker进行progressbar升级。最后的目标是显示背景搜索的进度,但我首先想通过做一个简单的模拟来了解进度条。代码如下: public MainWindow() { InitializeComponent(); worker = new BackgroundWorker(); // variable declared in the class worker.WorkerReportsPr

我正在尝试使用
BackgroundWorker
进行progressbar升级。最后的目标是显示背景搜索的进度,但我首先想通过做一个简单的模拟来了解进度条。代码如下:

    public MainWindow()
    {
        InitializeComponent();

        worker = new BackgroundWorker(); // variable declared in the class
        worker.WorkerReportsProgress = true;
        worker.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
        worker.RunWorkerCompleted += worker_RunWorkerCompleted;
    }

    private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        this.Title += " DONE";
    }

    private void worker_DoWork(object sender, DoWorkEventArgs e)
    {
        for(int j = 0; j <= 100; j++)
        {
            worker.ReportProgress(j);
            Title += j.ToString();
            Thread.Sleep(50);
        }
    }

    void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        searchProgressBar.Value = e.ProgressPercentage;
    }
public主窗口()
{
初始化组件();
worker=new BackgroundWorker();//类中声明的变量
worker.WorkerReportsProgress=true;
worker.DoWork+=新的doworkereventhandler(worker\u DoWork);
worker.ProgressChanged+=新的ProgressChangedEventHandler(backgroundWorker1\u ProgressChanged);
worker.RunWorkerCompleted+=worker\u RunWorkerCompleted;
}
私有void worker\u RunWorkerCompleted(对象发送方,RunWorkerCompletedEventArgs e)
{
此.Title+=“完成”;
}
私有void worker_DoWork(对象发送方,DoWorkEventArgs e)
{

对于(int j=0;j您忘记运行worker:

     worker.RunWorkerAsync();

如果您试图更改
UI内容
,则应将调用置于
UI Dispatcher
上。您
无法从后台线程修改UI对象
。请使用这些命令替换行-

App.Current.Dispatcher.Invoke((Action)delegate()
        {
            Title += j.ToString();
        });

App.Current.Dispatcher.Invoke((Action)delegate()
        {
            Title = "Done";
        });