如何解决使用 .BeginInvoke 启动的委托不断抛出 ThreadAbortExceptions?
早上好
我有一个从 WCF 服务方法运行的代码块。目的是执行一个异步进程,这将允许原始 WCF 服务方法返回结果,而无需等待进程运行。
public delegate void DoItAsync();
public static void TriggerDocSubmissions()
{
var docSubmissionClient = new Services.DocumentSubmitter();
try
{
var myAction = new DoItAsync(docSubmissionClient.DoWork);
myAction.BeginInvoke(null,null);
}
catch (Exception ex)
{
LogManager.LogException(ex);
}
}
上面显示的 DoWork 方法中的代码不断抛出 ThreadAbortExceptions。我知道被召唤来执行“DoWork”的线程是一个池线程,如果有任何事情中止了该线程,那么它将被视为来自该线程上运行的进程的 ThreadAbortException。
我不需要知道 DoWork 方法的执行结果,因为它会用它的结果更新数据库。
在某些情况下,我在开始执行 DoWork(毫秒)后很快就会看到 ThreadAbortExceptions,有时需要更长的时间(20-30)秒,有时它可以正常工作?
我如何影响/更好地理解 ThreadAbortExceptions 及其起源?为什么有时会发生,有时不会?
我查找了有关 BeginInvoke pattern 的更多信息,但找不到有关如何管理/影响 ThreadAbortExceptions 的任何信息。
任何见解将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。