PictureBox.LoadAsync Método

Definição

Carrega a imagem de forma assíncrona.

Sobrecargas

Name Description
LoadAsync(String)

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

LoadAsync()

Carrega a imagem de forma assíncrona.

LoadAsync(String)

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 ser exibida no PictureBox.

Exemplos

O exemplo de código seguinte demonstra como usar o LoadAsync método. Para executar este exemplo, cole o seguinte código num formulário Windows que contenha um PictureBox chamado pictureBox1 e um Button chamado startLoadButton. Certifique-se de que o Click evento do botão está associado ao startLoadButton_Click método neste exemplo. Deve alterar o caminho do ficheiro de imagem para um caminho válido no 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

Observações

Se o url parâmetro indicar um ficheiro local, o formato recomendado é um caminho de ficheiro local. Por exemplo, um ficheiro de imagem chamado myPicture.jpg localizado em c:\ seria acedido passando c:\myPicture.jpg pelo 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 utilizado. Se for usado um caminho relativo, será considerado relativo ao diretório de trabalho. Uma chamada ao Load método define a ImageLocation propriedade para o valor do url parâmetro.

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

Este método armazena na tarefa que devolve todas as exceções de não-utilização que o equivalente síncrono do método pode lançar. Se uma exceção for armazenada na tarefa devolvida, essa exceção será lançada quando a tarefa for aguardada. As exceções de uso, como ArgumentException, ainda são lançadas de forma síncrona. Para as exceções armazenadas, veja as exceções lançadas por Load(String).

Alterações no comportamento da carga

Alterações no comportamento da carga

A partir do .NET 8, o comportamento de como um controlo PictureBox carrega uma imagem remota mudou. Por defeito, a System.Net.ServicePointManager.CheckCertificateRevocationList propriedade é definida para true antes de uma imagem remota ser descarregada através WebClientde . Esta configuração garante que os servidores com certificados têm esses certificados verificados em relação à lista de revogação da autoridade certificadora (CRL) como parte do processo de validação.

Warning

Assim que uma imagem remota é carregada, CheckCertificateRevocationList é alterada para true durante a vida útil da aplicação. Pode voltar ao false manual se necessário, mas assim que outra imagem remota for carregada, CheckCertificateRevocationList está definida para true.

Um recurso remoto a funcionar anteriormente pode falhar ao carregar quando o CRL em cache local está desatualizado e uma atualização não pode ser recuperada. Isto pode acontecer quando a rede onde a aplicação está a correr está restrita e a localização CRL não está na lista de permissões.

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

Pode optar por não participar neste comportamento definindo a opção System.Windows.Forms.ServicePointManagerCheckCrl para a aplicação, de uma das seguintes formas:

  • Defina a propriedade como false no ficheiro de configuração da [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Adicione um <RuntimeHostConfigurationOption> item no ficheiro do projeto para o desativar:

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

Aplica-se a

LoadAsync()

Carrega a imagem de forma assíncrona.

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

Observações

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

Este método armazena na tarefa que devolve todas as exceções de não-utilização que o equivalente síncrono do método pode lançar. Se uma exceção for armazenada na tarefa devolvida, essa exceção será lançada quando a tarefa for aguardada. As exceções de uso, como ArgumentException, ainda são lançadas de forma síncrona. Para as exceções armazenadas, veja as exceções lançadas por Load().

Alterações no comportamento da carga

Alterações no comportamento da carga

A partir do .NET 8, o comportamento de como um controlo PictureBox carrega uma imagem remota mudou. Por defeito, a System.Net.ServicePointManager.CheckCertificateRevocationList propriedade é definida para true antes de uma imagem remota ser descarregada através WebClientde . Esta configuração garante que os servidores com certificados têm esses certificados verificados em relação à lista de revogação da autoridade certificadora (CRL) como parte do processo de validação.

Warning

Assim que uma imagem remota é carregada, CheckCertificateRevocationList é alterada para true durante a vida útil da aplicação. Pode voltar ao false manual se necessário, mas assim que outra imagem remota for carregada, CheckCertificateRevocationList está definida para true.

Um recurso remoto a funcionar anteriormente pode falhar ao carregar quando o CRL em cache local está desatualizado e uma atualização não pode ser recuperada. Isto pode acontecer quando a rede onde a aplicação está a correr está restrita e a localização CRL não está na lista de permissões.

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

Pode optar por não participar neste comportamento definindo a opção System.Windows.Forms.ServicePointManagerCheckCrl para a aplicação, de uma das seguintes formas:

  • Defina a propriedade como false no ficheiro de configuração da [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Adicione um <RuntimeHostConfigurationOption> item no ficheiro do projeto para o desativar:

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

Aplica-se a