2017-10-11 6 views
0

例には、常にこのような何かを示しています。FileOpenPicker開口

private async void openBtn_Click(object sender, RoutedEventArgs e)   
{   
    FileOpenPicker openPicker = new FileOpenPicker();      
    StorageFile file = await openPicker.PickSingleFileAsync();   
} 

をしかし、ユーザーがクリックした場合に二回、それは2つのピッカーウィンドウを開きます。それは本当に正しい方法ですか?

+0

代わりに 'PickSingleFileAndContinue()'を使用しますか? – Kostya

+0

またはこの1 https://www.codeproject.com/Tips/1179716/Extending-Content-Message-Dialog-Class-in-UWP-to-Aをチェック – Kostya

答えて

2

この問題を解決するには、いくつかのオプションがあります。まず、セマフォ/セマフォースリムを使用することがあります。第二に、イベントの懇願で、それを解約してから、購読してください:

private async void openBtn_Click(object sender, RoutedEventArgs e)   
{   
    var button = sender as Button; 
    button.Clik -= openBtn_Click; 
    FileOpenPicker openPicker = new FileOpenPicker();      
    StorageFile file = await openPicker.PickSingleFileAsync(); 
    // do smth 
    button.Clik += openBtn_Click; 
関連する問題