PictureBox.LoadAsync Méthode

Définition

Charge l'image de manière asynchrone.

Surcharges

LoadAsync(String)

Charge l'image à l'emplacement spécifié, de façon asynchrone.

LoadAsync()

Charge l'image de manière asynchrone.

LoadAsync(String)

Charge l'image à l'emplacement spécifié, de façon asynchrone.

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

Paramètres

url
String

Chemin d'accès de l'image à afficher dans PictureBox.

Exemples

L'exemple de code suivant illustre l'utilisation de la méthode LoadAsync. Pour exécuter cet exemple, collez le code suivant dans un Windows Form qui contient un PictureBox nommé pictureBox1 et un Button nommé startLoadButton. Vérifiez que l’événement Click du bouton est associé à la startLoadButton_Click méthode dans cet exemple. Vous devez remplacer le chemin du fichier image par un chemin d’accès valide sur votre système.

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

Remarques

Si le url paramètre indique un fichier local, le format recommandé est un chemin d’accès au fichier local. Par exemple, un fichier image nommé myPicture.jpg situé à l’emplacement c :\ est accessible en passant c:\myPicture.jpg pour le url paramètre . Un chemin d’accès complet, tel que http://www.contoso.com/path/images/image.jpg, ou un chemin relatif, tel que ./images/image.jpg, peut être utilisé. Si un chemin relatif est utilisé, il est considéré comme relatif au répertoire de travail. Un appel à la Load méthode affecte à la ImageLocation propriété la valeur du url paramètre .

Un appel à la LoadAsync méthode affecte à la ImageLocation propriété la valeur de url. Outre l’appel de la LoadAsync méthode, vous devez définir la propriété sur WaitOnLoadfalse pour charger une image de façon asynchrone. Lorsque vous chargez une image de façon asynchrone, vous pouvez gérer l’événement LoadProgressChanged pour déterminer la progression d’un chargement d’image ou l’événement LoadCompleted pour déterminer quand un chargement d’image est terminé. Si une erreur se produit pendant une opération de chargement d’image asynchrone, elle est interceptée et signalée par la Error propriété du AsyncCompletedEventArgs.

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que le équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour les exceptions stockées, consultez les exceptions levées par Load(String).

Changements de comportement de chargement

À compter de .NET 8, le comportement du chargement d’une image distante par un PictureBox contrôle a changé. Par défaut, la System.Net.ServicePointManager.CheckCertificateRevocationList propriété est définie sur true avant le téléchargement d’une image distante via WebClient. Ce paramètre garantit que les serveurs avec des certificats ont ces certificats vérifiés par rapport à la liste de révocation des autorités de certification (CRL) dans le cadre du processus de validation.

Avertissement

Dès qu’une image distante est chargée, CheckCertificateRevocationList est remplacé par true pour la durée de vie de l’application. Vous pouvez revenir à false manuellement si nécessaire, mais dès qu’une autre image distante est chargée, CheckCertificateRevocationList est défini sur true.

Le chargement d’une ressource distante précédemment opérationnelle peut échouer lorsque la liste de révocation de certificats mise en cache localement est obsolète et qu’une mise à jour ne peut pas être récupérée. Cela peut se produire lorsque le réseau sur lequel l’application s’exécute est restreint et que l’emplacement de la liste de révocation de certificats ne figure pas dans la liste d’autorisation.

Il est également possible que le délai de vérification de la liste de révocation de certificats affecte négativement la capacité de l’application à fonctionner.

Vous pouvez refuser ce comportement en définissant l’option System.Windows.Forms.ServicePointManagerCheckCrl pour l’application, de l’une des manières suivantes :

  • Définissez la propriété false sur dans le fichier de configuration [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Ajoutez un <RuntimeHostConfigurationOption> élément dans le fichier projet pour le désactiver :

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

S’applique à

LoadAsync()

Charge l'image de manière asynchrone.

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

Remarques

Outre l’appel de la LoadAsync méthode, la WaitOnLoad propriété doit être définie sur false pour charger une image de façon asynchrone. Lorsque vous chargez une image de façon asynchrone, vous pouvez gérer l’événement LoadProgressChanged pour déterminer la progression d’un chargement d’image ou l’événement LoadCompleted pour déterminer quand un chargement d’image est terminé.

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que le équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour les exceptions stockées, consultez les exceptions levées par Load().

Changements de comportement de chargement

À compter de .NET 8, le comportement du chargement d’une image distante par un PictureBox contrôle a changé. Par défaut, la System.Net.ServicePointManager.CheckCertificateRevocationList propriété est définie sur true avant le téléchargement d’une image distante via WebClient. Ce paramètre garantit que les serveurs avec des certificats ont ces certificats vérifiés par rapport à la liste de révocation des autorités de certification (CRL) dans le cadre du processus de validation.

Avertissement

Dès qu’une image distante est chargée, CheckCertificateRevocationList est remplacé par true pour la durée de vie de l’application. Vous pouvez revenir à false manuellement si nécessaire, mais dès qu’une autre image distante est chargée, CheckCertificateRevocationList est défini sur true.

Le chargement d’une ressource distante précédemment opérationnelle peut échouer lorsque la liste de révocation de certificats mise en cache localement est obsolète et qu’une mise à jour ne peut pas être récupérée. Cela peut se produire lorsque le réseau sur lequel l’application s’exécute est restreint et que l’emplacement de la liste de révocation de certificats ne figure pas dans la liste d’autorisation.

Il est également possible que le délai de vérification de la liste de révocation de certificats affecte négativement la capacité de l’application à fonctionner.

Vous pouvez refuser ce comportement en définissant l’option System.Windows.Forms.ServicePointManagerCheckCrl pour l’application, de l’une des manières suivantes :

  • Définissez la propriété false sur dans le fichier de configuration [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Ajoutez un <RuntimeHostConfigurationOption> élément dans le fichier projet pour le désactiver :

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

S’applique à