进度条和百分比C#

进度条和百分比C#,c#,progress-bar,C#,Progress Bar,我正在为桌面制作youtube mp3下载程序,我想用以下代码制作progressbarr: var progress = new Progress<double>(p => progressBar.Value = Convert.ToInt32(p * 100)); progress_label.Text = Convert.ToString(progressBar.Value) + "%"; await client.Download

我正在为桌面制作youtube mp3下载程序,我想用以下代码制作progressbarr:

    var progress = new Progress<double>(p => progressBar.Value = Convert.ToInt32(p * 100));
        progress_label.Text = Convert.ToString(progressBar.Value) + "%";
        await client.DownloadMediaStreamAsync(streamInfo, browse_txtbox.Text + title + ".mp3", progress);
var progress=newprogress(p=>progressBar.Value=Convert.ToInt32(p*100));
progress_label.Text=Convert.ToString(progressBar.Value)+“%”;
等待客户端。下载MediaStreamAsync(streamInfo,浏览_txtbox.Text+title+“.mp3”,进度);
我正在使用youtubeexplode库。
如何使标签和进度条同时刷新,因为进度条工作正常,但我想显示进度百分比。\u标签。

进度
基本上是
操作
委托,
DownloadMediaStreamAsync
定期调用以更新进度。为了完成更多的工作,您需要对其进行修改,以便执行代码块而不是单个调用:

var progress = new Progress<double>(p => 
    {
        progressBar.Value = Convert.ToInt32(p * 100);
        progress_label.Text = Convert.ToString(p * 100) + "%";
    });
await client.DownloadMediaStreamAsync(streamInfo, browse_txtbox.Text + title + ".mp3", progress);
var progress=新进展(p=>
{
progressBar.Value=转换为32(p*100);
progress_label.Text=Convert.ToString(p*100)+“%”;
});
等待客户端。下载MediaStreamAsync(streamInfo,浏览_txtbox.Text+title+“.mp3”,进度);

现在,标签也应该随着进度条更新。您还应该检查是否需要在UI线程上调用
Invoke
,我不确定是否会从
DownloadMediaStreamAsync
在UI线程上调用
Progress
。我不能告诉你怎么做,因为我不确定你使用的是什么UI框架。请注意可能的跨线程问题。

将单个语句lambda更改为代码块,并在其中添加标签修改。