>백엔드 개발 >C++ >`반품 대기`vs. vs. 작업을 직접 반환합니다. 왜`블록을 사용하는 데`가위 ''문제가 있습니까?

`반품 대기`vs. vs. 작업을 직접 반환합니다. 왜`블록을 사용하는 데`가위 ''문제가 있습니까?

Patricia Arquette
Patricia Arquette원래의
2025-02-02 13:31:10330검색
vs. 직접 작업으로 돌아 가기 :

return await 블록의 중요성 작업이 비동기 방법에서 직접 반환되고 의 사용은 의 사용과 동일하지만 await 블록 포장 방법을 사용할 때 둘 사이에는 미묘하지만 중요한 차이가 있습니다. using 다음 두 가지 방법을 고려하십시오

첫 번째 방법에서는 작업으로 직접 반환 할 때 블록은 즉시

객체를 return await 메소드로 릴리스하여 제어 코드를 반환하고 즉시 객체를 해제합니다. 그러나 방법이 완료되지 않을 수있어 잠재적 인 실수로 이어질 수 있습니다. using 반대로

를 사용할 때 가 완료되기 전에 대기합니다. 이렇게하면 비동기 작업이 완전히 실행 된 후에 만 ​​ 블록이 해제됩니다. 따라서 두 번째 방법은 정상적으로 작동하며 첫 번째 방법이 해제 될 수 있습니다.
<code class="language-csharp">Task<TResult> DoSomethingAsync()
{
    using (var foo = new Foo())
    {
        return foo.DoAnotherThingAsync();
    }
}

async Task<TResult> DoSomethingAsync()
{
    using (var foo = new Foo())
    {
        return await foo.DoAnotherThingAsync();
    }
}</code>

위 내용은 `반품 대기`vs. vs. 작업을 직접 반환합니다. 왜`블록을 사용하는 데`가위 ''문제가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.