async
메소드의 반환 값 : task
void ?
async 메소드는
task 또는
void 를 반환 할 수 있습니다. 이 선택은 방법의 동작과 호출 코드와 상호 작용하는 방법을 결정하기 때문에 중요합니다.
를 반환합니다.]
task 를 반환해야합니다. 이를 통해 발신자는 작업을 기다리고 완료된 후에 실행을 계속할 수 있습니다.
task 는 여러 작업의 진행 상황을 모니터링 할 수있는
Async-Foreach 와 같은 예외 처리 및 비동기 모드를 사용할 수 있습니다.
]
void 에서
async 메소드를 반환하기에 유일한 적절한 사례는 이벤트 핸들러 또는 UI 콜백과 같은
반환 유형이 명시 적으로 필요할 때입니다. 이 경우 발신자는 메소드를 기다릴 수 없어야하며 async 및
키워드가 필요하지 않습니다.
최상위 레벨을 피하십시오 Async void
메소드
Async void
는 특별한 의미를 가지고 있으며주의해서 사용해야합니다. 최상위 비동기 작업을 나타내며 작업을 반환하는 방법과는 다른 예외 처리 규칙이 있습니다. 최상위 레벨의 예외 메소드의 예외는 처리되지 않은 예외로 취급되며 예상치 못한 행동으로 이어질 수 있습니다.
예를 들어, 다음 코드를 고려하십시오.
public static async void AsyncMethod2(int num)
{
await Task.Factory.StartNew(() => Thread.Sleep(num));
}
: 때문에 문제가 될 수 있습니다.
발신자가 방법을 기다리고 진행 상황을 모니터링하는 것을 방지합니다.
키워드를 사용하여 키워드를 사용하여 올바른 예외 처리를 보장하고 비동기 작업을 추적하고 관리 할 수있는 기능을 유지하는 것이 가장 좋습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3