PictureBox.LoadAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Carga la imagen de forma asincrónica.
Sobrecargas
LoadAsync(String) |
Carga la imagen en la ubicación especificada, de forma asincrónica. |
LoadAsync() |
Carga la imagen de forma asincrónica. |
LoadAsync(String)
- Source:
- PictureBox.cs
- Source:
- PictureBox.cs
- Source:
- PictureBox.cs
Carga la imagen en la ubicación especificada, de forma asincrónica.
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
Ruta de acceso de la imagen que se va a mostrar en PictureBox.
Ejemplos
En el ejemplo de código siguiente se muestra cómo utilizar el método LoadAsync. Para ejecutar este ejemplo, pegue el código siguiente en un formulario Windows Forms que contenga un denominado PictureBoxpictureBox1
y un con Button nombre startLoadButton
. Asegúrese de que el Click evento del botón está asociado al startLoadButton_Click
método de este ejemplo. Debe cambiar la ruta de acceso del archivo de imagen a una ruta de acceso válida en el 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
Comentarios
Si el url
parámetro indica un archivo local, el formato recomendado es una ruta de acceso del archivo local. Por ejemplo, se tendría acceso a un archivo de imagen denominado myPicture.jpg ubicado en c:\ pasando c:\myPicture.jpg
para el url
parámetro . Se puede usar una ruta de acceso completa, como http://www.contoso.com/path/images/image.jpg
, o una ruta de acceso relativa, como ./images/image.jpg. Si se usa una ruta de acceso relativa, se considerará relativa al directorio de trabajo. Una llamada al Load método establece la ImageLocation propiedad en el valor del url
parámetro .
Una llamada al LoadAsync método establece la ImageLocation propiedad en el valor de url
. Además de llamar al LoadAsync método , debe establecer la WaitOnLoad propiedad false
en para cargar una imagen de forma asincrónica. Al cargar una imagen de forma asincrónica, puede controlar el LoadProgressChanged evento para determinar el progreso de una carga de imagen o el LoadCompleted evento para determinar cuándo se ha completado una carga de imagen. Si se produce un error durante una operación asincrónica de carga de imágenes, se detectará y notificará mediante la Error propiedad de AsyncCompletedEventArgs.
Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, esa excepción se producirá cuando se espere a la tarea. Las excepciones de uso, como ArgumentException, se siguen produciendo de forma sincrónica. Para ver las excepciones almacenadas, vea las excepciones producidas por Load(String).
Cambios de comportamiento de carga
A partir de .NET 8, el comportamiento de cómo un PictureBox
control carga una imagen remota ha cambiado. De forma predeterminada, la System.Net.ServicePointManager.CheckCertificateRevocationList propiedad se establece en true
antes de que se descargue una imagen remota a través de WebClient. Esta configuración garantiza que los servidores con certificados tengan esos certificados comprobados en la lista de revocación de la entidad de certificación (CRL) como parte del proceso de validación.
Advertencia
En cuanto se carga una imagen remota, CheckCertificateRevocationList
se cambia a true
durante la vigencia de la aplicación. Puede revertir a false
manualmente si es necesario, pero en cuanto se carga otra imagen remota, CheckCertificateRevocationList
se establece en true
.
Un recurso remoto que trabaja anteriormente podría no cargarse cuando la CRL almacenada localmente en caché no está actualizada y no se puede recuperar una actualización. Esto puede ocurrir cuando la red en la que se ejecuta la aplicación está restringida y la ubicación crL no está en la lista de permitidos.
También es posible que el retraso en la comprobación de la CRL afecte negativamente a la capacidad de la aplicación para funcionar.
Puede no participar en este comportamiento estableciendo la System.Windows.Forms.ServicePointManagerCheckCrl
opción para la aplicación de una de las siguientes maneras:
Establezca la propiedad
false
en en el archivo de configuración [app].runtimeconfig.json :{ "configProperties": { "System.Windows.Forms.ServicePointManagerCheckCrl": false } }
Agregue un
<RuntimeHostConfigurationOption>
elemento en el archivo del proyecto para deshabilitarlo:<ItemGroup> <RuntimeHostConfigurationOption Include="System.Windows.Forms.ServicePointManagerCheckCrl" Value="false" /> </ItemGroup>
Se aplica a
LoadAsync()
- Source:
- PictureBox.cs
- Source:
- PictureBox.cs
- Source:
- PictureBox.cs
Carga la imagen de forma asincrónica.
public:
void LoadAsync();
public void LoadAsync ();
member this.LoadAsync : unit -> unit
Public Sub LoadAsync ()
Comentarios
Además de llamar al LoadAsync método , la WaitOnLoad propiedad debe establecerse en false
para cargar una imagen de forma asincrónica. Al cargar una imagen de forma asincrónica, puede controlar el LoadProgressChanged evento para determinar el progreso de una carga de imagen o el LoadCompleted evento para determinar cuándo se ha completado una carga de imagen.
Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, esa excepción se producirá cuando se espere a la tarea. Las excepciones de uso, como ArgumentException, se siguen produciendo de forma sincrónica. Para ver las excepciones almacenadas, vea las excepciones producidas por Load().
Cambios de comportamiento de carga
A partir de .NET 8, el comportamiento de cómo un PictureBox
control carga una imagen remota ha cambiado. De forma predeterminada, la System.Net.ServicePointManager.CheckCertificateRevocationList propiedad se establece en true
antes de que se descargue una imagen remota a través de WebClient. Esta configuración garantiza que los servidores con certificados tengan esos certificados comprobados en la lista de revocación de la entidad de certificación (CRL) como parte del proceso de validación.
Advertencia
En cuanto se carga una imagen remota, CheckCertificateRevocationList
se cambia a true
durante la vigencia de la aplicación. Puede revertir a false
manualmente si es necesario, pero en cuanto se carga otra imagen remota, CheckCertificateRevocationList
se establece en true
.
Un recurso remoto que trabaja anteriormente podría no cargarse cuando la CRL almacenada localmente en caché no está actualizada y no se puede recuperar una actualización. Esto puede ocurrir cuando la red en la que se ejecuta la aplicación está restringida y la ubicación crL no está en la lista de permitidos.
También es posible que el retraso en la comprobación de la CRL afecte negativamente a la capacidad de la aplicación para funcionar.
Puede no participar en este comportamiento estableciendo la System.Windows.Forms.ServicePointManagerCheckCrl
opción para la aplicación de una de las siguientes maneras:
Establezca la propiedad
false
en en el archivo de configuración [app].runtimeconfig.json :{ "configProperties": { "System.Windows.Forms.ServicePointManagerCheckCrl": false } }
Agregue un
<RuntimeHostConfigurationOption>
elemento en el archivo del proyecto para deshabilitarlo:<ItemGroup> <RuntimeHostConfigurationOption Include="System.Windows.Forms.ServicePointManagerCheckCrl" Value="false" /> </ItemGroup>