2017-12-09 3 views
0

Wenn der Debugger angehängt ist, wird die App durch den Aufruf dieser Funktion angehalten. Wenn ich ohne einen Debugger laufe, gibt es kein Hängen und die Dateiauswahl funktioniert perfekt.UWP FileOpenPicker sperrt die App beim Debuggen

private async void OnClick(object sender, RoutedEventArgs e) 
    { 
     FileOpenPicker openPicker = new FileOpenPicker(); 
    } 

Ich bin sicher, das ist etwas super einfach, aber ich weiß es einfach nicht.

Edit:

Hier ist, wie ich es bin mit. Beachten Sie, dass die einfachere Funktion das Hang-Problem ohne all meinen zusätzlichen Code erzeugt. Ich habe die Bildspeicherung vollgestopft, aber das ist ein separates Problem, das ich debuggen möchte, wenn ich löse, worum es in diesem Beitrag geht.

. 

    public async Task ImportHeader() 
     { 
      FileOpenPicker openPicker = new FileOpenPicker(); 
      openPicker.ViewMode = PickerViewMode.Thumbnail; 
      openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; 
      openPicker.FileTypeFilter.Add(".jpg"); 
      openPicker.FileTypeFilter.Add(".png"); 

      // For multiple image selection 
      var files = await openPicker.PickMultipleFilesAsync(); 
      foreach (StorageFile singleImage in files) 
      { 
       IRandomAccessStream stream = await singleImage.OpenAsync(Windows.Storage.FileAccessMode.Read); 

       var image = new BitmapImage(); 
       image.SetSource(stream); 
       HeaderImage.Source = image; 

       //We also save this to disk for later 
       Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; 
       Windows.Storage.StorageFile file = await storageFolder.CreateFileAsync("header.jpg", Windows.Storage.CreationCollisionOption.ReplaceExisting); 

       stream.Seek(0); 

       using (StreamWriter bw = new StreamWriter(file.OpenStreamForWriteAsync().Result)) 
       { 
        var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, stream); 

        var renderTargetBitmap = new RenderTargetBitmap(); 
        await renderTargetBitmap.RenderAsync(HeaderImage, (int)HeaderImage.Width, (int)HeaderImage.Height); 
        var pixels = await renderTargetBitmap.GetPixelsAsync(); 
        byte[] bytes = pixels.ToArray(); 

        bw.Write(stream); 
       } 
      } 
     } 
+0

Ihr Codebeispiel scheint etwas zu vermissen. Wie genau zeigen Sie den Dateiauswahldialog an? –

+0

Ich habe den Kontext des tatsächlichen Codes hinzugefügt, den ich verwende. Die einfachere erste Zeile jedoch erzeugt den Hang ohne all die anderen Sachen. – Jarryd

+0

Beide Codebeispiele funktionieren auf meinem Computer einwandfrei, mit oder ohne Debugger. –

Antwort

2

Dies auch auf einige der jüngsten Windows-10 Insider Vorschau baut mir passiert ist, während der Prozess einwandfrei auf stabil arbeitet Versionen von Windows 10. Ich denke, die Ursache annehmen kann anstelle des Codes ist es .

+0

Windows Insider-PC 1709 (17025.1000) Auswahl hängt Nach der Bereitstellung auf einem Nicht-Insider-Programm-Computer funktioniert die Auswahl wie erwartet. – Jarryd

+1

Ja, das ist ein bekannter Bug, der in den Insider-Build 17025 einging. Es wurde 17027 und über Builds behoben. –

Verwandte Themen