2013-09-02 4 views
0

: 난 삭제가 나에게 또 다른 오류 보여 "기다리고 있습니다"때StoragePolder의 FolderPicker에서 폴더를 저장하는 방법은 무엇입니까? 내가이 할 때

Error 2 The 'await' operator can only be used within an async method. Consider marking this method with the 'async' modifier and changing its return type to 'Task'. C:\Users\Lukasz\Documents\Visual Studio 2012\Projects\RobimyProjekt\RobimyProjekt\ImageBrowser.xaml.cs.

:

Error 2 Cannot implicitly convert type 'Windows.Foundation.IAsyncOperation' to 'Windows.Storage.StorageFolder' C:\Users\Lukasz\Documents\Visual Studio 2012\Projects\RobimyProjekt\RobimyProjekt\ImageBrowser.xaml.cs 61 36 RobimyProjekt.

무슨 일을

 folderPicker = new FolderPicker(); 
     folderPicker.SuggestedStartLocation = PickerLocationId.Desktop; 
     folderPicker.FileTypeFilter.Add(".txt"); 
     StorageFolder folder = await folderPicker.PickSingleFolderAsync(); 

를 그것은 나에게 오류를 보여 ? 그 코드는 msdna에서 내가이 시도

private async void (pickFolder(object sender, RoutedEventArgs e) 
+0

이 어떻게 기능입니다 (이 코드를 포함하는) 정의? – RvdK

+0

개인 무효 pickFolder (객체 발신자, RoutedEventArgs e) { // 이전 게시물의 코드 } –

답변

0

변화를 사용하여. 기다리기 위해서는 async 키워드를 사용해야합니다.

Consider marking this method with the 'async' modifier and changing its return type to 'Task'.

Task 반환 형식이 방법 "awaitable"를 만드는 : 오류 메시지의 조언을 듣기

private async void pickFolder(object sender, RoutedEventArgs e) 
{ 
    folderPicker = new FolderPicker(); 
    folderPicker.SuggestedStartLocation = PickerLocationId.Desktop; 
    folderPicker.ViewMode = PickerViewMode.List; 
    folderPicker.FileTypeFilter.Add(".txt"); 
    StorageFolder folder = await folderPicker.PickSingleFolderAsync(); 
    if(folder != null) 
    { 
     StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", folder); 
    } 

}

1

에 비주얼 스튜디오 2012

0

는 것도 좋은 생각 일 수도있다.

다른 답변에서 제안 된대로 void 솔루션도 작동하지만 'fire & 잊어 버림'솔루션이 생성됩니다. 실제로는 Task을 반환하는 것이 좋습니다. 예를 들어 호출자가 메서드에서 발생하는 예외와 같은 작업을 수행하고자하는 경우 이것이 가능합니다.

http://msdn.microsoft.com/en-us/magazine/jj991977.aspx에서 인용하자면 :

"To summarize this first guideline, you should prefer async Task to async void. Async Task methods enable easier error-handling, composability and testability."