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

관련 문제