【发布时间】:2015-01-27 01:38:08
【问题描述】:
我正在开发一个设置如下的 WCF Web 服务:
由来自任务调度程序的 REST 请求定期触发(每 15 分钟一次)的 Web 方法。
当被触发时,Web 方法使用 Task.Factory.StartNew 启动一个后台方法。此方法涉及从远程 API 获取和发布以及写入本地数据库,有时需要几分钟才能完成。
一旦后台方法启动,Web 方法就会返回“成功触发”消息并终止。
我的问题是:如果 web 方法在运行时再次触发,后台方法是否能够在多个线程上同时运行?我不希望这种情况发生,因为它可能会导致各种麻烦。理想情况下,我希望多个调用排队并在单个后台线程上一个接一个地执行。
我也不确定 Task.Factory.StartNew 是否是最好的方法,如果有任何建议,我将不胜感激。
【问题讨论】:
标签: c# multithreading wcf concurrency