我试图在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日后:) –