기존 웹 서비스를 사용하는 서버와 통신하는 데스크탑 응용 프로그램 (.net 3.5)이 있습니다.
웹 서비스 기능을 여러 번 호출하고 모두 끝내기를 기다린 다음 계속해야합니다.모든 비동기 웹 서비스 호출이 반환되기를 기다리는 중
이 호출을 병렬로 수행하고 싶습니다. 그래서 분명히 MyFunctionAsync
메소드를 활용하려고합니다.
문제는 모든 호출이 반환되었는지 확인하는 방법을 모르겠습니다. 여기에 간단한 동기화 메커니즘이 없을 것 같습니다. 이 C#을이처럼
public void DoWork()
{
service.MyFuncCompleted+= MyFunc_Completed;
foreach (var i in items)
{
service.MyFuncAsync(i);
syncMechanism.WaitForAnother(1); //signal that we have to wait for 1 more task to finish
}
syncMechanism.WaitForAllTasksToFinsih(); //wait until specified number of tasks have finished
//continue
}
public void MyFunc_Completed(EventArgs e)
{
//process result...
syncMechanism.Signal(1); //signal that 1 task has finished
}
아무도 아는 : 여기
내가 할 수 있도록하고 싶습니다 무엇인가?
"0으로 내려 갔는지 확인하십시오."어떻게 제안 하시겠습니까? 바쁘신가요? '(while (true) {if (counter == 0) break;}'? –
답변에 코드 예제를 추가했습니다. –