【发布时间】:2010-03-05 21:43:27
【问题描述】:
编辑(再次):让我简化我的问题。我有一个 Windows 服务,它使用以下方法公开一些 WCF 端点:
int ExecuteQuery(string query) {
// asynchronously execute query that may take 1 second to 20 minutes
return queryId;
}
string GetStatus(int queryId) {
// return the status of the query (# of results so far, etc)
}
实现ExecuteQuery 方法的最佳方式是什么?我应该打电话给ThreadPool.QueueUserWorkItem 来查询吗?
请注意,执行查询背后的实际工作是由负载平衡的黑盒完成的。我希望能够同时进行多个查询。
类比是一个同时下载多个文件的网络浏览器,而您有一个可以跟踪每个文件状态的下载管理器。
【问题讨论】:
标签: c# multithreading windows-services queue long-running-processes