双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

C# async 与 await 疑问

WangxiaoluWang WangxiaoluWang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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,但是调试时发现代码都是执行完下载代码后才往后执行的,初次使用望指教。
...全文
评论 8
收藏 已收藏
分享
返回顶部
WangxiaoluWang
C# 111,129 成员 642,540 内容