示例总是会显示类似这样的内容:
private async void openBtn_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker openPicker = new FileOpenPicker();
StorageFile file = await openPicker.PickSingleFileAsync();
}但是如果用户点击两次,就会打开两个选择器窗口。这真的是正确的方式吗?
发布于 2017-10-12 04:47:44
有几个选项可以解决这个问题,第一个可能是使用Semaphore/SemaphoreSlim并等待它。其次-在事件的乞求下,取消订阅,做工作,然后订阅:
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;https://stackoverflow.com/questions/46696314
复制相似问题