private void Download_Click(object sender, EventArgs e)
{
label1.Text = "Downloading...";
WebClient wc = new WebClient();
string program = "Program";
string link = "https://linkhere.com";
string download = wc.DownloadString(link);
string path = "Program\\" program ".zip";
string patch = "Program";
Directory.CreateDirectory(patch);
wc.DownloadFile(download, path);
label1.Text = "Downloaded!";
}
我想讓 label1.Text = "Downloaded!"; 下載程式后發生。
uj5u.com熱心網友回復:
您需要使下載異步以防止死鎖。
private async void Download_Click(object sender, EventArgs e)
{
label1.Text = "Downloading...";
WebClient wc = new WebClient();
string program = "Program";
string link = "https://linkhere.com";
string download = wc.DownloadString(link);
string path = "Program\\" program ".zip";
string patch = "Program";
Directory.CreateDirectory(patch);
await wc.DownloadFileAsync(download, path);
label1.Text = "Downloaded!";
}
uj5u.com熱心網友回復:
該DownloadFile檔案說:“這個方法塊在下載資源”,所以我不知道這可能是你的情況不同,或者甚至有一個問題。
我懷疑您永遠不會看到,"Downloading..."因為 UI 在兩次label1.Text更新呼叫之間沒有更新。Application.DoEvents()在第一次.Text更新后添加可能會有所幫助。
uj5u.com熱心網友回復:
請使用任務和事件來處理這種情況。
uj5u.com熱心網友回復:
您可以將此作為參考修改您的下載。
public static async Task Main()
{
Task task1 = new Task(() => ActionToWork1());
Task task2 = new Task(() => ActionToWork2());
task1.Start();
task2.Start();
await Task.WhenAll(task1, task2);
Console.WriteLine("All task done.");
}
private static void ActionToWork1(){
Console.WriteLine("Working on Task 1");
}
private static void ActionToWork2(){
Console.WriteLine("Working on Task 2");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/407602.html
標籤:
上一篇:安裝后系結重定向不應用
下一篇:方法未系結到事件處理程式
