2017-10-11 2 views
0

질문 제목에 따라 "아니오, 불가능하지 않습니다!"라는 메시지가 즉시 표시되지만 계속 읽으십시오. "C# 5.0의 비동기를"읽기비동기식 및 안전하지 않은 사용

(내가 검색하고이 이와 같은 의심을 없으므로이 AFAIK 이 중복되지 그런데) 본인은

안전하지 않은 코드

안전하지 않은 것으로 표시된 코드는 기다릴 필요가 없습니다. 안전하지 않은 코드는 매우 드물며 비동기적일 필요는없는 자체 포함 된 메서드로 유지되어야합니다. await를 컴파일러 변환 어쨌든 대부분의 상황에서 안전하지 않은 코드 (30 페이지)

나는이에서 수집 무엇을, 당신이 쓸 수 없습니다 내부에 안전하지 않은 블록이 "기다리고 있습니다"이다 휴식 것입니다. 나는이 문제없이 가능하다 추측하고 함수

void DoSomethingUnsafeHere(int[,] image) 
{ 
    unsafe{ 
    } 
} 

async Task Caller() 
{ 
    await Task.Run(() => DoSomethingUnsafeHere(image)); 
} 

(내 앞의 질문을 다음과) 하지만 방법에 대해, 안 그래? 분명히 이것은 자체 포함 된 방법 인 것 같습니다. 모든 의견, 권장 사항은 크게 환영합니다.

+1

"X는 Y를 포함 할 수 없습니다"라는 상황이 "Y는 X를 (를) 포함 할 수 없음"을 의미하는 것으로 자동 가정됩니다. –

답변

1

예, 문제가 없습니다.

(대답은 어떤 종류의 당신. 방법을 호출하면 문제가되지 않습니다 async 방법 unsafe 코드를 깰 수있는 과정이 컴파일러에 의해 상태 머신 (state machine)로 변환 얻을? 기대하고 그 방법은 async 여부 무관의 않았다 , unsafe 또는 다른 종류의 방법이 있습니다.)

관련 문제