저는 StreamSocket 클래스를 사용하여 Windows Phone 8 앱을 작성했지만 이상한 상황을 발견했습니다. 내 코드 순서에DataReader.LoadAsync()가 동 기적으로 실행됩니까?
async void Connect() {
await StreamSocketConnect();
TryToSendAsync();
ReceiveAsync();
}
async void ReceiveAsync() {
//WriteLine("111");
await DataReader.LoadAsync();
//WriteLine("222");
DoReceiverCallBack();
}
async void TryToSendAsync(){
await DataWriter.StoreAsync();
}
void DoReceiveCallBack() {
//WriteLine("333");
ReceiveAsync();
//WriteLine("444");
}
아래로, 그것은 333 => 111 => 444 => 222을 따라야하지만, 특히 데이터를 수신하는 동안 언젠가 내가 333 => 111 => 222 => 444을 얻을 것입니다. 가끔 동기가 될까요 ??
아마도 도움이 될 수 있습니다. http://stackoverflow.com/questions/5095183/how-would-i-run-an-async-taskt-method-synchronously – Romasz
질문과 관련이 없지만 실제로 피해야합니다. 'async void' 메쏘드 사용 (이벤트 핸들러 제외). – svick
'대기'할 수있는 모든 작업이 동 기적으로 완료 될 수 있습니다. –