C# async 与 await 疑问
private void DownLoadFile(string path, EmailMessage email, Attachment at)
{
try
{
Attachment attachment = email.Attachments.Single(x => x.ContentId == at.ContentId);
attachment.Load();
FileAttachment fileAttachment = attachment as FileAttachment;
fileAttachment.Load();
byte[] bytes = fileAttachment.Content;
File.WriteAllBytes(path, bytes);
}
catch (Exception ex)
{
}
}
public async System.Threading.Tasks.Task<ExchangeEmail> GetBody(ItemId Id)
{
EmailMessage email = EmailMessage.Bind(service, Id);
#region xiaolu Add 15-7-8 附件内容
Dictionary<string, string> atts = new Dictionary<string, string>();
if (email.HasAttachments)
{
var att = email.Attachments;
foreach (var at in att)
{
var guid = Guid.NewGuid().ToString();
var ext = at.Name.Substring(at.Name.LastIndexOf('.'));
var linpath = "http://" + HttpContext.Current.Request.Url.Host + ":" + HttpContext.Current.Request.Url.Port + "/UpLoad/App/Mail/" + guid + ext;//连接地址
atts.Add(linpath, at.Name);
var path = HttpContext.Current.Server.MapPath("~/UpLoad/App/Mail/" + guid + ext);//保存的文档路径
await System.Threading.Tasks.Task.Run(() => { DownLoadFile(path, email, at); });
}
}
#endregion
ExchangeEmail mee = new ExchangeEmail();
mee.Body = email.Body;
mee.DateTimeCreated = email.DateTimeCreated;
mee.DateTimeReceived = email.DateTimeReceived;
mee.Id = email.Id;
mee.Sender = email.Sender.Name;
mee.Subject = email.Subject;
mee.Atts = atts;
mee.SenderEmail = email.Sender.Address;
//mee.Body = email.TextBody;
return mee;
}
如上代码,加了async和await,但是调试时发现代码都是执行完下载代码后才往后执行的,初次使用望指教。
...全文
相关推荐
C# 论坛C# 论坛
C# 论坛C# 论坛C# 论坛C# 论坛C# 论坛
IEC61850 DOTNet源码 c#.zip
网上收集的用C#开发的一个符合61850的框架,希望对大家有帮助,也希望正在研究这方面的兄弟多提供点相关的资料,大家共同进步。
C#学习PPT(从老师那里拷贝过来的)
C#学习的PPT教程,完整版,绝对权威,本来想上传更大的免积分文件呢,唉,没权限,有需要者发邮件到:785803707@qq.com,我给你发过去,分享快乐!
零点起飞学C#随书源代码
零点起飞学C#随书源代码只供学习使用!
浅谈C#中的Async和Await的用法详解
主要介绍了浅谈C#中的Async和Await的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧



