gpt4 book ai didi

c# - 暂停和恢复下载 WPF

转载 作者:太空狗 更新时间:2023-10-29 21:56:45 24 4
gpt4 key购买 nike

您好,我正在开发面向 .NET Framework 4.5.2 的 WPF 平台。我正在为我的应用程序编写一个下载器。这是代码:

private void Download(Dictionary<int, FileAndLinkClass> MyLinks)
{
ApplicationDownloadThread = new Thread(() =>
{
foreach (KeyValuePair<int, FileAndLinkClass> item in MyLinks)
{
fileNo++;
WebClient myWebClient = new WebClient();
myWebClient.DownloadProgressChanged += MyWebClient_DownloadProgressChanged;
myWebClient.DownloadFileCompleted += MyWebClient_DownloadFileCompleted;
// Download the Web resource and save it into the current filesystem folder.
string downloadedFileAdress = System.IO.Path.Combine(fileLocation, $"{item.Value.FileName}");
myWebClient.DownloadFileAsync(new Uri(item.Value.Link), downloadedFileAdress);
while (myWebClient.IsBusy)
{

}
}
});

ApplicationDownloadThread.IsBackground = false;
ApplicationDownloadThread.Start();

//UnZipAndCreateUpdatePackage(MyLinks);

}

现在我想点击按钮下载必须暂停,点击另一个按钮必须恢复下载。我尝试使用 AutoReset 事件的 .set() 属性和相同的 .Reset() 属性,但它没有用。我需要帮助。我的按钮点击代码是:

    private AutoResetEvent waitHandle = new AutoResetEvent(true);

private void StartDownloadBtn_Click(object sender, RoutedEventArgs e)
{
waitHandle.Set();

}

private void StopDownloadBtn_Click(object sender, RoutedEventArgs e)
{
waitHandle.Reset();

}

我也试过这个链接 How to pause/suspend a thread then continue it? .什么都没发生

我也经历过Adding pause and continue ability in my downloader但我未能将解决方案合并到我的上述代码中,因为我也在更新 UI 上的下载进度。

最佳答案

好吧,我做了更多的挖掘,显然是为了你 Adding pause and continue ability in my downloader不清楚,因为它在类中使用字节流数据。也许您可以查看下面的链接,它还提供了 WPF 上的 VS 解决方案,用于下载具有暂停/恢复/停止功能的 .zip 文件扩展名。如果您需要更多帮助,请告诉我。


CodeProject 文章链接: C# .NET Background File Downloader

关于c# - 暂停和恢复下载 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39286916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com