2013-08-22 26 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