PictureBox.LoadAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 startLoadButton
pictureBox1
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 url
fest. 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 true
festgelegt.
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 true
festgelegt.
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>