我目前正在使用 WCF 服务,该服务应该生成一个新任务以在服务器上异步运行(需要进行数据库查询等)。有可能(并且很可能)在新任务完成保证客户端关闭之前将响应发送回客户端。此时,在创建任务期间可用的依赖项将不再可用。为了完成任务,我仍然需要一些依赖项。
我将如何确保新任务所需的依赖项仍然存在?
我包含了一些非常愚蠢的代码来给出一个基本的例子。
public string SubmitData(
User user, Request request)
{
History history = m_history.CreateRequest(user);
//New task which will do an import of data into the DB.
Task.Factory.StartNew( () =>
Import( user, request, history ) );
/*Return some sort of response back to user so they're not waiting for
*the long process to complete
*/
return "Response";
}
private void Import(
User user,
Request request,
History history)
{
var response = Import(
user, request, history);
m_history.Save(history, response );
}