Freigeben über


PictureBox.LoadAsync Methode

Definition

Lädt das Bild asynchron.

Überlädt

LoadAsync(String)

Lädt das Bild am angegebenen Speicherort asynchron.

LoadAsync()

Lädt das Bild asynchron.

LoadAsync(String)

Lädt das Bild am angegebenen Speicherort asynchron.

public:
 void LoadAsync(System::String ^ url);
public void LoadAsync (string url);
member this.LoadAsync : string -> unit
Public Sub LoadAsync (url As String)

Parameter

url
String

Der Pfad des Bildes, das in der PictureBox angezeigt werden soll.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die LoadAsync-Methode verwenden. Fügen Sie zum Ausführen dieses Beispiels den folgenden Code in ein Windows Form-Formular ein, das einen PictureBox namens und einen Button mit dem Namen startLoadButtonpictureBox1 enthält. Stellen Sie sicher, dass das Click Ereignis für die Schaltfläche der startLoadButton_Click -Methode in diesem Beispiel zugeordnet ist. Sie müssen den Pfad der Imagedatei in einen Pfad ändern, der für Ihr System gültig ist.

private void startButton_Click(object sender, EventArgs e)
{
    // Ensure WaitOnLoad is false.
    pictureBox1.WaitOnLoad = false;

    // Load the image asynchronously.
    pictureBox1.LoadAsync(@"http://localhost/print.gif");
}
Private Sub startLoadButton_Click(ByVal sender As Object, _
    ByVal e As EventArgs) Handles startLoadButton.Click

    ' Ensure WaitOnLoad is false.
    pictureBox1.WaitOnLoad = False

    ' Load the image asynchronously.
    pictureBox1.LoadAsync("http://localhost/print.gif")

End Sub

Hinweise

Wenn der url Parameter eine lokale Datei angibt, ist das empfohlene Format ein lokaler Dateipfad. Beispielsweise wird auf eine Bilddatei namens myPicture.jpg in c:\ zugegriffen, indem der url Parameter übergeben c:\myPicture.jpg wird. Ein vollständiger Pfad, z http://www.contoso.com/path/images/image.jpg. B. , oder ein relativer Pfad, z . B. ./images/image.jpg, kann verwendet werden. Wenn ein relativer Pfad verwendet wird, wird er relativ zum Arbeitsverzeichnis betrachtet. Ein Aufruf der Load -Methode legt die ImageLocation -Eigenschaft auf den Wert des url Parameters fest.

Ein Aufruf der LoadAsync -Methode legt die ImageLocation -Eigenschaft auf den Wert von urlfest. Neben dem Aufrufen der LoadAsync -Methode müssen Sie die WaitOnLoad -Eigenschaft auf false festlegen, um ein Bild asynchron zu laden. Wenn Sie ein Bild asynchron laden, können Sie das LoadProgressChanged Ereignis behandeln, um den Fortschritt eines Imageladevorgangs oder das LoadCompleted Ereignis zu bestimmen, um zu bestimmen, wann eine Bildladevorgang abgeschlossen ist. Wenn während eines asynchronen Bildladevorgangs ein Fehler auftritt, wird er abgefangen und von der Error -Eigenschaft von AsyncCompletedEventArgsgemeldet.

Diese Methode speichert in der Aufgabe, die sie alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Nutzungsausnahmen, z. B ArgumentException. , werden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter die von ausgelösten Load(String)Ausnahmen.

Änderungen des Lastverhaltens

Ab .NET 8 hat sich das Verhalten, wie ein PictureBox Steuerelement ein Remoteimage lädt, geändert. Standardmäßig ist die System.Net.ServicePointManager.CheckCertificateRevocationList -Eigenschaft auf true festgelegt, bevor ein Remoteimage über WebClientheruntergeladen wird. Diese Einstellung stellt sicher, dass bei Servern mit Zertifikaten diese Zertifikate im Rahmen des Überprüfungsprozesses mit der Sperrliste der Zertifizierungsstelle (Certificate Authority Revocation List, CRL) überprüft werden.

Warnung

Sobald ein Remoteimage geladen wird, CheckCertificateRevocationList wird für die Lebensdauer der App in true geändert. Sie können bei Bedarf manuell zu false rückgängig machen, aber sobald ein anderes Remoteimage geladen wird, CheckCertificateRevocationList wird auf truefestgelegt.

Eine zuvor funktionierende Remoteressource kann möglicherweise nicht geladen werden, wenn die lokal zwischengespeicherte Zertifikatsperrliste veraltet ist und ein Update nicht abgerufen werden kann. Dies kann passieren, wenn das Netzwerk, in dem die App ausgeführt wird, eingeschränkt ist und sich der Speicherort der Sperrliste nicht auf der Zulassungsliste befindet.

Es ist auch möglich, dass sich die Verzögerung bei der Überprüfung der Zertifikatsperrliste negativ auf die Funktionsfähigkeit der App auswirkt.

Sie können dieses Verhalten deaktivieren, indem Sie die System.Windows.Forms.ServicePointManagerCheckCrl Option für die App auf eine der folgenden Arten festlegen:

  • Legen Sie die -Eigenschaft false in der Konfigurationsdatei [app].runtimeconfig.json fest:

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Fügen Sie ein <RuntimeHostConfigurationOption> Element in der Projektdatei hinzu, um es zu deaktivieren:

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Windows.Forms.ServicePointManagerCheckCrl" Value="false" />
    </ItemGroup>
    

Gilt für:

LoadAsync()

Lädt das Bild asynchron.

public:
 void LoadAsync();
public void LoadAsync ();
member this.LoadAsync : unit -> unit
Public Sub LoadAsync ()

Hinweise

Neben dem Aufrufen der LoadAsync -Methode muss die WaitOnLoad -Eigenschaft auf false festgelegt werden, um ein Bild asynchron zu laden. Wenn Sie ein Bild asynchron laden, können Sie das LoadProgressChanged Ereignis behandeln, um den Fortschritt eines Imageladevorgangs oder das LoadCompleted Ereignis zu bestimmen, um zu bestimmen, wann eine Bildladevorgang abgeschlossen ist.

Diese Methode speichert in der Aufgabe, die sie alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Nutzungsausnahmen, z. B ArgumentException. , werden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter die von ausgelösten Load()Ausnahmen.

Änderungen des Lastverhaltens

Ab .NET 8 hat sich das Verhalten, wie ein PictureBox Steuerelement ein Remoteimage lädt, geändert. Standardmäßig ist die System.Net.ServicePointManager.CheckCertificateRevocationList -Eigenschaft auf true festgelegt, bevor ein Remoteimage über WebClientheruntergeladen wird. Diese Einstellung stellt sicher, dass bei Servern mit Zertifikaten diese Zertifikate im Rahmen des Überprüfungsprozesses mit der Sperrliste der Zertifizierungsstelle (Certificate Authority Revocation List, CRL) überprüft werden.

Warnung

Sobald ein Remoteimage geladen wird, CheckCertificateRevocationList wird für die Lebensdauer der App in true geändert. Sie können bei Bedarf manuell zu false rückgängig machen, aber sobald ein anderes Remoteimage geladen wird, CheckCertificateRevocationList wird auf truefestgelegt.

Eine zuvor funktionierende Remoteressource kann möglicherweise nicht geladen werden, wenn die lokal zwischengespeicherte Zertifikatsperrliste veraltet ist und ein Update nicht abgerufen werden kann. Dies kann passieren, wenn das Netzwerk, in dem die App ausgeführt wird, eingeschränkt ist und sich der Speicherort der Sperrliste nicht auf der Zulassungsliste befindet.

Es ist auch möglich, dass sich die Verzögerung bei der Überprüfung der Zertifikatsperrliste negativ auf die Funktionsfähigkeit der App auswirkt.

Sie können dieses Verhalten deaktivieren, indem Sie die System.Windows.Forms.ServicePointManagerCheckCrl Option für die App auf eine der folgenden Arten festlegen:

  • Legen Sie die -Eigenschaft false in der Konfigurationsdatei [app].runtimeconfig.json fest:

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Fügen Sie ein <RuntimeHostConfigurationOption> Element in der Projektdatei hinzu, um es zu deaktivieren:

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Windows.Forms.ServicePointManagerCheckCrl" Value="false" />
    </ItemGroup>
    

Gilt für: