【发布时间】:2015-06-04 01:56:39
【问题描述】:
我的代码中有一个特定位置,用于发送电子邮件。好吧,在这里等待这个方法完成并不重要,这只是一个应该在不久的将来发生的任务,但不一定现在。
我想知道这是否安全:
// some stuff here...
Task.Run(SendEmail);
// and here too... but don't wait for the email to be sent, just go!!
这样好吗?这个方法会一直执行吗?它不会导致任何线程阻塞问题,对吗(假设方法本身是线程安全的)?
另外,运行此类任务的好方法是什么?打电话比较好:
SendEmail();
前提是这个方法是async?
public static async Task SendEmail()
【问题讨论】:
-
无法回答这是否会导致阻塞。 “SendEmail”方法以及您与之共享的任何数据是线程安全的吗?
-
这是一个静态方法,不连接任何东西。它只是在自己的范围内制作一些东西并向外部服务器发送请求。
-
如果您发布 SendEmail 方法的声明会有所帮助
-
那你为什么认为它会引起问题?
-
@Randolph:请注意,如果这是一个 ASP.NET 应用程序,则几乎可以肯定,即发即弃是一个错误。
标签: c# multithreading parallel-processing