2013-08-22 27 views
0
class CommandLine2 
{ 
static void Main(string[] args) 
{ 
    System.Console.WriteLine("Number of command line parameters = {0}", args.Length); 

    foreach (string s in args) 
    { 
     System.Console.WriteLine(s); 
    } 
} 
} 

这是将从WCF启动任务的控制台应用程序示例。运行控制台异步运行以产生更高效的输出

我得到了一个项目,逐行扫描csv文件的一组检查,我创建了一个控制台应用程序,将执行任务。我需要的是运行这个异步,所以它会击中每一行,并说几秒钟后结束任务。我希望它是有效的,这就是为什么。我将使用WCF,所以如果你知道一种方法来运行命令异步请引导我。

回答

1

如果您使用WCF,您应该能够使客户端服务器引用包括基于任务的异步客户端调用。

然后你只需要异步地调用操作。

但是,您可能不想使用async/await,而只是启动操作,并使用Task.WaitAll或类似的操作。控制台应用程序中异步操作的问题在于没有当前的同步上下文,因此在完成异步工作之前,请注意不要让应用程序关闭。

+0

那么我会在哪里应用Task.WaitALL? – MohammedT

+0

@MohammedTahir开始了所有的任务之后,这些任务将阻止客户端完成任务。 –

+0

哦,对不起,我的意思是我在哪里写它?它在循环内还是在WCF中? – MohammedT