我試圖在ASYNC任務正在執行時顯示等待符號。任務完成後處理代碼
我真的很新的這一點,所以如果有實現這個代碼更好的方法,請賜教:)
但是,一切正常,除了pictureBox1的隱藏代碼完成後有現在找到結果。換句話說,當有一個結果,pictureBox1隱藏
下面是運行每一個Outlook項目打開
private void FormRegion1_FormRegionShowing(object sender, System.EventArgs e)
{
if (this.OutlookItem is Microsoft.Office.Interop.Outlook.MailItem)
{
Microsoft.Office.Interop.Outlook.MailItem item = (Microsoft.Office.Interop.Outlook.MailItem)this.OutlookItem;
getContactByEmail(item);
}
}
這一次的方法是,我實現了等待的東西的方法
public async Task getContactByEmail(Microsoft.Office.Interop.Outlook.MailItem item)
{
pictureBox1.Visible = true;
using (var client = new System.Net.Http.HttpClient())
{
client.BaseAddress = new Uri("http://api.....");
client.DefaultRequestHeaders.Accept.Clear();
HttpResponseMessage response = await client.GetAsync("tools/getContactByEmail?email=" + item.SenderEmailAddress + "&key=1232");
if (response.IsSuccessStatusCode)
{
SimpleContact contact = await response.Content.ReadAsAsync<SimpleContact>();
lblName.Text = contact.Name;
lblMobile.Text = contact.Phone;
}
pictureBox1.Visible = false;
}
}
有什麼異常?因爲如果拋出異常'pictureBox1.Visible = false;'不會執行 –
好..問題是,即使沒有結果,response.IsSuccessCode也是如此。那麼lbl.text = contact.Name會嘗試設置一個空值。這是一個例外。非常感謝您 – espenk
歡迎,您可以刪除問題或自己發佈答案,您可以接受它一天或2日後:) –