Task에서 오랫동안 실행하는 async
메서드입니다..NET과 관련하여 작업이 끝날 때까지 기다리는 가장 좋은 방법은 무엇입니까?
public async Task<int> LongRunningMethod(T p1, T p2, T p3);
우리 팀의 일부 개발자들은 일부 사용하는 동안
await LongRunningMethod(p1,p2,p3);
// Here too, we simply 'await' till the method finishes.
참고
Task t = Task.Factory.StartNew(LongRunningMethod(p1,p2,p3));
t.Wait(); //This will suspend main thread and wait for 't' to finish.
를 사용 : 우리는 비동기 작업을 가지고 있고 우리는 그 작업이 완료됩니다 때까지 기다려야합니다.
요약하면 위의 두 구문 중 어느 것이 가장 좋습니까?
"최고"를 정의하십시오. –
왜 비동기식으로 기다리지 않습니까? * 기다리고 *) 작업을 완료하려면? 또한 Task.Factory.StartNew를 사용하면 중첩 된 작업 문제 (예 : 여기서 'Task'또는 'Task ')를 실행하기 때문에이 경우 정확하지 않을 수 있습니다. Task.Run을 선호하십시오 (예 : StartNew에서 이미 작동하는 기존 레거시 코드). –
그건'Thread'가 아니라'Task'입니다. 그리고 아니, 그들은 반드시 똑같은 것은 아닙니다. 차이점은 [here] (https://stackoverflow.com/questions/4130194/what-is-the-difference-between-task-and-thread)와 [여기] (https://stackoverflow.com/)를 참조하십시오. 질문/37419572/if-async-await-doesnt-create-any-additional-threads-then-how-make-it-appl). – john