我正在使用ASP.NET MVC 3和MVCMailer,我尝试使用SendAsync发送电子邮件,但实际上它还需要更长的时间.
所以我试图像下面的代码一样使用Task.Factory:
var task1 = Task.Factory.StartNew(
state =>
{
var mail = new UserMailer();
var msg = mail.Welcome("My Name", "myemail@gmail.com");
msg.SendAsync();
});
task1.Wait();
Run Code Online (Sandbox Code Playgroud)
问题是,MVCMailer需要HttpContext,但在这个任务中我得到了HttpContext Null.
如何发送Async电子邮件?
这是一个非常疯狂的bug.以下是OutOfMemoryException针对非常简短(例如<ABC def='123'/>)的XML snippit 抛出的内容:
public static T DeserializeXmlNode<T>(XmlNode node)
{
try
{
return (T)new XmlSerializer(typeof(T))
.Deserialize(new XmlNodeReader(node));
}
catch (Exception ex)
{
throw; // just for catching a breakpoint.
}
}
Run Code Online (Sandbox Code Playgroud)
我在这篇MSDN文章中读到,如果我在构造函数中使用XmlSerializer和其他参数,我每次调用时都会生成未缓存的序列化程序集,从而导致程序集泄漏.但我没有在构造函数中使用其他参数.它也是在第一次在新启动的AppDomain中调用时发生的,所以这也没有意义.
是什么赋予了?