Compartilhar via


PictureBox.LoadAsync Método

Definição

Carrega a imagem de forma assíncrona.

Sobrecargas

Nome Description
LoadAsync(String)

Carrega a imagem no local especificado, de forma assíncrona.

LoadAsync()

Carrega a imagem de forma assíncrona.

LoadAsync(String)

Origem:
PictureBox.cs
Origem:
PictureBox.cs
Origem:
PictureBox.cs
Origem:
PictureBox.cs
Origem:
PictureBox.cs

Carrega a imagem no local especificado, de forma assíncrona.

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

Parâmetros

url
String

O caminho para a imagem a ser exibida no PictureBox.

Exemplos

O exemplo de código a seguir demonstra como usar o LoadAsync método. Para executar este exemplo, cole o código a seguir em um Formulário do Windows que contém um PictureBox nome pictureBox1 e um Button nome startLoadButton. Verifique se o Click evento para o botão está associado ao startLoadButton_Click método neste exemplo. Você deve alterar o caminho do arquivo de imagem para um caminho válido em seu 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

Comentários

Se o url parâmetro indicar um arquivo local, o formato recomendado será um caminho de arquivo local. Por exemplo, um arquivo de imagem chamado myPicture.jpg localizado em c:\ seria acessado passando c:\myPicture.jpg para o url parâmetro. Um caminho completo, como http://www.contoso.com/path/images/image.jpg, ou um caminho relativo, como ./images/image.jpg, pode ser usado. Se um caminho relativo for usado, ele será considerado em relação ao diretório de trabalho. Uma chamada para o Load método define a ImageLocation propriedade como o valor do url parâmetro.

Uma chamada para o LoadAsync método define a ImageLocation propriedade como o valor de url. Além de chamar o LoadAsync método, você deve definir a WaitOnLoad propriedade para false carregar uma imagem de forma assíncrona. Ao carregar uma imagem de forma assíncrona, você pode manipular o LoadProgressChanged evento para determinar o progresso de uma carga de imagem ou o LoadCompleted evento para determinar quando uma carga de imagem foi concluída. Se ocorrer um erro durante uma operação de carregamento de imagem assíncrona, ele será capturado e relatado pela Error propriedade do AsyncCompletedEventArgs.

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por Load(String).

Alterações de comportamento de carga

A partir do .NET 8, o comportamento de como um PictureBox controle carrega uma imagem remota foi alterado. Por padrão, a System.Net.ServicePointManager.CheckCertificateRevocationList propriedade é definida como true antes de uma imagem remota ser baixada por meio WebClientde . Essa configuração garante que os servidores com certificados tenham esses certificados verificados na CRL (lista de revogação de autoridade de certificação) como parte do processo de validação.

Aviso

Assim que uma imagem remota é carregada, CheckCertificateRevocationList é alterada para true o tempo de vida do aplicativo. Você pode reverter para false manualmente, se necessário, mas assim que outra imagem remota é carregada, CheckCertificateRevocationList é definida como true.

Um recurso remoto em funcionamento anteriormente pode falhar ao carregar quando a CRL armazenada em cache localmente estiver desatualizada e uma atualização não puder ser recuperada. Isso pode acontecer quando a rede na qual o aplicativo está sendo executado é restrita e o local da CRL não está na lista de permissões.

Também é possível que o atraso na verificação da CRL afete negativamente a capacidade do aplicativo de funcionar.

Você pode recusar esse comportamento definindo a opção System.Windows.Forms.ServicePointManagerCheckCrl para o aplicativo de uma das seguintes maneiras:

  • Defina a propriedade como false no arquivo de configuração .runtimeconfig.json[aplicativo ]:

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Adicione um <RuntimeHostConfigurationOption> item no arquivo de projeto para desabilitá-lo:

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

Aplica-se a

LoadAsync()

Origem:
PictureBox.cs
Origem:
PictureBox.cs
Origem:
PictureBox.cs
Origem:
PictureBox.cs
Origem:
PictureBox.cs

Carrega a imagem de forma assíncrona.

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

Comentários

Além de chamar o LoadAsync método, a WaitOnLoad propriedade deve ser definida para false carregar uma imagem de forma assíncrona. Ao carregar uma imagem de forma assíncrona, você pode manipular o LoadProgressChanged evento para determinar o progresso de uma carga de imagem ou o LoadCompleted evento para determinar quando uma carga de imagem foi concluída.

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por Load().

Alterações de comportamento de carga

A partir do .NET 8, o comportamento de como um PictureBox controle carrega uma imagem remota foi alterado. Por padrão, a System.Net.ServicePointManager.CheckCertificateRevocationList propriedade é definida como true antes de uma imagem remota ser baixada por meio WebClientde . Essa configuração garante que os servidores com certificados tenham esses certificados verificados na CRL (lista de revogação de autoridade de certificação) como parte do processo de validação.

Aviso

Assim que uma imagem remota é carregada, CheckCertificateRevocationList é alterada para true o tempo de vida do aplicativo. Você pode reverter para false manualmente, se necessário, mas assim que outra imagem remota é carregada, CheckCertificateRevocationList é definida como true.

Um recurso remoto em funcionamento anteriormente pode falhar ao carregar quando a CRL armazenada em cache localmente estiver desatualizada e uma atualização não puder ser recuperada. Isso pode acontecer quando a rede na qual o aplicativo está sendo executado é restrita e o local da CRL não está na lista de permissões.

Também é possível que o atraso na verificação da CRL afete negativamente a capacidade do aplicativo de funcionar.

Você pode recusar esse comportamento definindo a opção System.Windows.Forms.ServicePointManagerCheckCrl para o aplicativo de uma das seguintes maneiras:

  • Defina a propriedade como false no arquivo de configuração .runtimeconfig.json[aplicativo ]:

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Adicione um <RuntimeHostConfigurationOption> item no arquivo de projeto para desabilitá-lo:

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

Aplica-se a