【发布时间】:2017-12-20 06:14:01
【问题描述】:
我正在尝试更新我的 windows 窗体应用程序的进度条,它基本上是一个下载 youtube 视频的应用程序。但是,我在进度条方法上收到一个名为“System.ArgumentOutOfRangeException”的异常。请帮我解决这个问题。谢谢! :)
private void button1_Click(object sender, EventArgs e)
{
progressBarOverall.Minimum = 0;
progressBarOverall.Minimum = 100;
IEnumerable<VideoInfo> videos = DownloadUrlResolver.GetDownloadUrls(textBox1.Text);
VideoInfo video = videos.First(p => p.VideoType == VideoType.Mp4 && p.Resolution == Convert.ToInt32(cboResolution.Text));//converts video quality
if(video.RequiresDecryption) //Checks if video requiures decryption before downloading the URL
DownloadUrlResolver.DecryptDownloadUrl(video);//
VideoDownloader downloader = new VideoDownloader(video, Path.Combine(Application.StartupPath + "//", video.Title + video.VideoExtension));
downloader.DownloadProgressChanged += Downloader_DownloadProgressChanged;
Thread thread = new Thread(() => { downloader.Execute(); }) { IsBackground = true };
thread.Start();
}
private void Downloader_DownloadProgressChanged(object sender, ProgressEventArgs e)
{
Invoke(new MethodInvoker(delegate ()
{
progressBarOverall.Value = (int)e.ProgressPercentage;
percentagelabel.Text = $"{string.Format("{0:0.##}", e.ProgressPercentage)}%";
progressBarOverall.Update();
}));
}
【问题讨论】:
标签: c# multithreading youtube progress-bar