2017-10-18 3 views
0

C++/CX의 UWP API에서 CreateFileAsync 메서드를 사용하는 데 문제가 있습니다. 여기에 내가 실행하려고하고있는 코드입니다 :UWP의 CreateFileAsync 문제

create_task(folder->CreateFileAsync(destination_file, Windows::Storage::CreationCollisionOption::OpenIfExists)). 
     then(
      [this](StorageFile^ dest_file) 
      { 
       //do something here 
      }); 

CreateFileAsync의 전화가 내 파일을 적절한 위치에 만들어집니다로 성공하는 것입니다. 그러나 내 람다 함수 (//do something here) 내의 코드는 실행되지 않습니다.

아무도 내가 잘못하고있는 것을 설명 할 수 있습니까?

답변

0

내 파일이 적절한 위치에 만들어 지므로 CreateFileAsync 호출이 성공한 것처럼 보입니다. 그러나, 내 람다 함수 내부 코드 (//여기서 뭔가) 절대 실행되지 않습니다.

나는 CreateFileAsync 비동기 방법을 실행하기 위해 create_task을 사용하고 내 side.You에서 문제를 재현 할 수 있습니다. .then 블록은 콜백 함수로 간주 될 수 있습니다. 그리고 CreateFileAsync이 끝나면 실행됩니다. 다음 코드를 작성하여 실행되는지 확인할 수 있습니다.

create_task(folder->CreateFileAsync("test.jpg", Windows::Storage::CreationCollisionOption::OpenIfExists)). 
    then(
     [this](StorageFile^ dest_file) 
{ 
    OutputDebugString(L"excuted------->"); 
}); 

자세한 내용은 Asynchronous programming in C++을 참조하십시오.

+0

감사합니다. 실제로 명령이 실행되지 않았습니다. 이 문제를 해결하기 위해 코드를 리팩토링해야했습니다. 아직도 무슨 일이 있었는지 모르겠다. –

+0

그건 도움이되지 않습니다. OP는 이미 문제의 코드가 실행되지 않는다고 결정했습니다. 코드가 실행되지 않는다고 판단하는 대안을 제공하면 문제를 해결하지 못합니다. – IInspectable