【发布时间】:2014-02-23 02:20:58
【问题描述】:
我正在编写一个 C# 控制台应用程序,它调用 Web 服务从数据库中提取大量数据(耗时的过程),Windows 任务调度程序将在预定时间执行此控制台应用程序。现在,将创建许多任务调度程序(例如至少 70 个任务调度程序)来同时执行同一个 exe。设计此类应用程序的最佳方法是什么,以便在一个任务调度程序正在执行而另一个任务调度程序试图同时执行同一个 exe 时,该 exe 不会被中断?
下面给出一个示例程序
class Program
{
static void Main(string[] args)
{
var countryCode = "34";
WebServiceClient client = new WebServiceClient(); //ASP.NET web service
var output = client.Process(countryCode);//this is a time consuming process and takes 5 minutes or more
File.WriteAllText("c:\\test\\country.txt", output);
}
}
【问题讨论】:
-
与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
-
如果您不想执行多个并发执行,为什么要创建多个同时执行它的计划?您似乎在说,“我有一个系统设置为执行 X,但我不希望它执行 X。我该如何阻止它?”我不清楚你想要的行为是什么。
-
@Jim - 如您所见,国家代码(即 34)在那里是硬编码的,但实际上这将作为一个参数出现。所以每个调度程序将使用不同的国家代码,我要求最佳设计方法是专家意见,我们在团队内部确实有自己的意见,但我们正在考虑所有可能的解决方案,并将选择最适合我们的解决方案。希望这会有所帮助。
-
我不知道为什么我的问题显示为-1,为什么我的声誉分数下降了?应该鼓励人们提出问题
标签: c# multithreading parallel-processing console-application asmx