我很想知道調用異步方法 時如何管理任務的生命週期,並存儲本地變量中返回的任務。考慮以下代碼本地任務在完成之前如何避免垃圾回收
public partial class Form1 : Form
{
public Form1()
{
this.InitializeComponent();
}
private void loadButton_Click(object sender, EventArgs e)
{
var client = new WebClient();
var task = client.DownloadStringTaskAsync(new Uri(@"http:\\www.rpmglobal.com"));
task.ContinueWith(t =>
{
try
{
this.textBox.Text = t.Result;
}
catch (AggregateException ex)
{
this.textBox.Text = "ERROR: " + ex.InnerException.Message;
}
}, TaskScheduler.FromCurrentSynchronizationContext());
}
}
變量task
是一個局部變量,應儘快進行垃圾回收變爲可用的方法退出任務完成之前它可能會很長。什麼是確保這不會發生的機制?
變量不可用於垃圾回收。引用變量的*對象*引用* may。 –