我的理解是引入了HostingEnvironment.QueueBackgroundWorkItem API,因此可以在Asp.net应用程序中生成新线程,并且当AppDomain发出关闭信号时,这个新线程不会立即终止(例如,如果有人做了IIS应用程序池回收)。相反,在关闭AppDomain之前,它会等待一段时间尝试正常完成它的工作。我可以在WCF应用程序中使用相同的API吗?如果没有,WCF堆栈中是否有相同的功能?或者这可以在WCF中无法可靠地完成,并且需要某种持久队列?
答案 0 :(得分:2)
根据MSDN documentation,它只适用于ASP.NET。 reference source表示在没有ASP.NET环境的情况下调用InvalidOperationException
时会抛出QueueBackgroundWorkItem()
。我可以确认在WCF中尝试使用此功能时发生异常。