Condividi tramite


PictureBox.LoadAsync Metodo

Definizione

Carica l'immagine in modo asincrono.

Overload

LoadAsync(String)

Carica in modo asincrono l'immagine nel percorso specificato.

LoadAsync()

Carica l'immagine in modo asincrono.

LoadAsync(String)

Carica in modo asincrono l'immagine nel percorso specificato.

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

Parametri

url
String

Percorso dell'immagine da visualizzare nel controllo PictureBox.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare il metodo LoadAsync. Per eseguire questo esempio, incollare il codice seguente in un Windows Form contenente un PictureBox oggetto denominato pictureBox1 e un Button denominato startLoadButton. Assicurarsi che l'evento Click per il pulsante sia associato al startLoadButton_Click metodo in questo esempio. È necessario modificare il percorso del file di immagine in un percorso valido nel sistema.

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

Commenti

Se il url parametro indica un file locale, il formato consigliato è un percorso di file locale. Ad esempio, è possibile accedere a un file di immagine denominato myPicture.jpg che si trova in c:\ passando c:\myPicture.jpg per il url parametro . È possibile usare un percorso completo, ad esempio http://www.contoso.com/path/images/image.jpg, o un percorso relativo, ad esempio ./images/image.jpg. Se viene usato un percorso relativo, verrà considerato relativo alla directory di lavoro. Una chiamata al Load metodo imposta la ImageLocation proprietà sul valore del url parametro .

Una chiamata al LoadAsync metodo imposta la ImageLocation proprietà sul valore di url. Oltre a chiamare il LoadAsync metodo , è necessario impostare la WaitOnLoad proprietà su per false caricare un'immagine in modo asincrono. Quando si carica un'immagine in modo asincrono, è possibile gestire l'evento LoadProgressChanged per determinare lo stato di avanzamento di un caricamento di un'immagine o l'evento LoadCompleted per determinare quando è stato completato il caricamento di un'immagine. Se si verifica un errore durante un'operazione di caricamento asincrono delle immagini, verrà intercettata e segnalata dalla Error proprietà di AsyncCompletedEventArgs.

Questo metodo archivia nell'attività restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Load(String).

Modifiche al comportamento di caricamento

A partire da .NET 8, il comportamento di modifica di un PictureBox controllo carica un'immagine remota. Per impostazione predefinita, la proprietà viene impostata su prima che System.Net.ServicePointManager.CheckCertificateRevocationList venga scaricata un'immagine remota tramite WebClient.true Questa impostazione garantisce che i server con certificati abbiano tali certificati controllati rispetto all'elenco di revoche dell'autorità di certificazione (CRL) come parte del processo di convalida.

Avviso

Non appena viene caricata un'immagine remota, CheckCertificateRevocationList viene modificata in true per la durata dell'app. È possibile ripristinare false manualmente se necessario, ma non appena viene caricata un'altra immagine remota, CheckCertificateRevocationList è impostata su true.

Una risorsa remota funzionante in precedenza potrebbe non riuscire a essere caricata quando il CRL memorizzato nella cache locale non è aggiornato e non è possibile recuperare un aggiornamento. Ciò può verificarsi quando la rete in cui è in esecuzione l'app è limitata e il percorso CRL non si trova nell'elenco elementi consentiti.

È anche possibile che il ritardo nel controllo dell'elenco CRL influisca negativamente sulla capacità dell'app di funzionare.

Puoi rifiutare esplicitamente questo comportamento impostando l'opzione System.Windows.Forms.ServicePointManagerCheckCrl per l'app, in uno dei modi seguenti:

  • Impostare la proprietà su false nel file di configurazione [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Aggiungere un <RuntimeHostConfigurationOption> elemento nel file di progetto per disabilitarlo:

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

Si applica a

LoadAsync()

Carica l'immagine in modo asincrono.

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

Commenti

Oltre a chiamare il LoadAsync metodo , la WaitOnLoad proprietà deve essere impostata su per false caricare un'immagine in modo asincrono. Quando si carica un'immagine in modo asincrono, è possibile gestire l'evento LoadProgressChanged per determinare lo stato di avanzamento di un caricamento di un'immagine o l'evento LoadCompleted per determinare quando è stato completato il caricamento di un'immagine.

Questo metodo archivia nell'attività restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Load().

Modifiche al comportamento di caricamento

A partire da .NET 8, il comportamento di modifica di un PictureBox controllo carica un'immagine remota. Per impostazione predefinita, la proprietà viene impostata su prima che System.Net.ServicePointManager.CheckCertificateRevocationList venga scaricata un'immagine remota tramite WebClient.true Questa impostazione garantisce che i server con certificati abbiano tali certificati controllati rispetto all'elenco di revoche dell'autorità di certificazione (CRL) come parte del processo di convalida.

Avviso

Non appena viene caricata un'immagine remota, CheckCertificateRevocationList viene modificata in true per la durata dell'app. È possibile ripristinare false manualmente se necessario, ma non appena viene caricata un'altra immagine remota, CheckCertificateRevocationList è impostata su true.

Una risorsa remota funzionante in precedenza potrebbe non riuscire a essere caricata quando il CRL memorizzato nella cache locale non è aggiornato e non è possibile recuperare un aggiornamento. Ciò può verificarsi quando la rete in cui è in esecuzione l'app è limitata e il percorso CRL non si trova nell'elenco elementi consentiti.

È anche possibile che il ritardo nel controllo dell'elenco CRL influisca negativamente sulla capacità dell'app di funzionare.

Puoi rifiutare esplicitamente questo comportamento impostando l'opzione System.Windows.Forms.ServicePointManagerCheckCrl per l'app, in uno dei modi seguenti:

  • Impostare la proprietà su false nel file di configurazione [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Aggiungere un <RuntimeHostConfigurationOption> elemento nel file di progetto per disabilitarlo:

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

Si applica a