PictureBox.LoadAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Carrega a imagem de maneira assíncrona.
Sobrecargas
LoadAsync(String) |
Carrega a imagem no local especificado, de maneira assíncrona. |
LoadAsync() |
Carrega a imagem de maneira assíncrona. |
LoadAsync(String)
Carrega a imagem no local especificado, de maneira 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 exibir 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 nomeado pictureBox1
e um Button chamado 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 como false
para 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 de WebClient. 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
durante o tempo de vida do aplicativo. Você pode reverter de volta para false
manualmente, se necessário, mas assim que outra imagem remota é carregada, CheckCertificateRevocationList
é definida true
como .
Um recurso remoto que estava funcionando 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 em que o aplicativo está sendo executado é restrita e o local da CRL não está na lista de permitidos.
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 [app].runtimeconfig.json :{ "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()
Carrega a imagem de maneira 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 como false
para 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 de WebClient. 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
durante o tempo de vida do aplicativo. Você pode reverter de volta para false
manualmente, se necessário, mas assim que outra imagem remota é carregada, CheckCertificateRevocationList
é definida true
como .
Um recurso remoto que estava funcionando 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 em que o aplicativo está sendo executado é restrita e o local da CRL não está na lista de permitidos.
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 [app].runtimeconfig.json :{ "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>