如何检查线程,然后填写C#/ WPF中的进度条

tsv*_*der 2 c# wpf multithreading progress-bar

我正在开发我在Windows上的第一个GUI应用程序.

我有一个WPF GUI到一个复制文件的小型C#实用程序.单击按钮进行复制时,我显然不希望GUI挂起.因此,我启动一个新线程来运行复制文件的方法.我认为到目前为止我已经走上正轨,并且在C#中没有"更好"的方式吗?

现在,我有一个ProgressBar我希望在线程完成时显示的内容.(现在它运行良好,不确定).如何检查复制何时完成?

所以,到目前为止,我有:

Thread t = new Thread(delegate() 
{ 
    po.Organise(inputPath, outputPath, recursive); 
});

t.Start();

PBar.IsIndeterminate = true;
Run Code Online (Sandbox Code Playgroud)

之后我想要的东西就像:

if (t.Done)
{
    PBar.Value = 100;
}
Run Code Online (Sandbox Code Playgroud)

tan*_*ius 7

看看BackgroundWorker课程.它支持像RunWorkerCompleted或的事件ProgressChanged.
看看这里(这是关于一般的线程+后台工作者,再次).