Поделиться через


PictureBox.LoadAsync Метод

Определение

Асинхронно загружает изображение.

Перегрузки

LoadAsync(String)

Асинхронно загружает изображение в указанное расположение.

LoadAsync()

Асинхронно загружает изображение.

LoadAsync(String)

Исходный код:
PictureBox.cs
Исходный код:
PictureBox.cs
Исходный код:
PictureBox.cs

Асинхронно загружает изображение в указанное расположение.

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

Параметры

url
String

Путь к изображению, отображаемому в элементе управления PictureBox.

Примеры

В следующем примере кода показано, как использовать метод LoadAsync. Чтобы выполнить этот пример, вставьте следующий код в Форму Windows Forms, содержащую PictureBox с именем pictureBox1 и ButtonstartLoadButton. Убедитесь, что Click событие для кнопки связано с методом startLoadButton_Click в этом примере. Необходимо изменить путь к файлу изображения на путь, допустимый в системе.

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

Комментарии

url Если параметр указывает локальный файл, рекомендуемый формат — это путь к локальному файлу. Например, к файлу образа с именемmyPicture.jpg , расположенному в папке c:\ , можно получить доступ, передав c:\myPicture.jpg параметр url . Можно использовать полный путь, например http://www.contoso.com/path/images/image.jpg, или относительный путь, например ./images/image.jpg. Если используется относительный путь, он будет рассматриваться относительно рабочего каталога. Вызов Load метода задает для ImageLocation свойства значение url параметра .

Вызов LoadAsync метода задает ImageLocation для свойства значение url. Помимо вызова LoadAsync метода, необходимо задать свойству WaitOnLoad значение , false чтобы загрузить изображение асинхронно. При асинхронной загрузке изображения можно обработать LoadProgressChanged событие, чтобы определить ход загрузки образа или LoadCompleted событие, чтобы определить, когда загрузка образа завершена. Если во время асинхронной операции загрузки изображения возникает ошибка, она будет перехватываться и сообщаться свойством ErrorAsyncCompletedEventArgsобъекта .

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Load(String).

Изменения в поведении загрузки

Начиная с .NET 8 поведение элемента управления, загружающего удаленный образ, PictureBox изменилось. По умолчанию System.Net.ServicePointManager.CheckCertificateRevocationList свойство имеет значение true , прежде чем удаленный образ будет скачан через WebClient. Этот параметр гарантирует, что серверы с сертификатами проверяют эти сертификаты в списке отзыва центра сертификации (CRL) в рамках процесса проверки.

Предупреждение

После загрузки CheckCertificateRevocationList удаленного образа изменяется на true время существования приложения. При необходимости можно отменить изменения вручнуюfalse, но как только загружается другой удаленный образ, CheckCertificateRevocationList устанавливается значение true.

Ранее работающий удаленный ресурс может не загрузиться, если локально кэшированный список отзыва сертификатов устарел и не удается получить обновление. Это может произойти, если сеть, в которую выполняется приложение, ограничена, а расположение списка отзыва сертификатов отсутствует в списке разрешений.

Также возможно, что задержка при проверке списка отзыва сертификатов негативно влияет на работу приложения.

Вы можете отказаться от этого поведения, задав System.Windows.Forms.ServicePointManagerCheckCrl параметр для приложения одним из следующих способов:

  • Присвойте свойству значение false в файле конфигурации [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • <RuntimeHostConfigurationOption> Добавьте элемент в файл проекта, чтобы отключить его:

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

Применяется к

LoadAsync()

Исходный код:
PictureBox.cs
Исходный код:
PictureBox.cs
Исходный код:
PictureBox.cs

Асинхронно загружает изображение.

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

Комментарии

Помимо вызова LoadAsync метода, WaitOnLoad свойство должно иметь значение , false чтобы загрузить изображение асинхронно. При асинхронной загрузке изображения можно обработать LoadProgressChanged событие, чтобы определить ход загрузки образа или LoadCompleted событие, чтобы определить, когда загрузка образа завершена.

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Load().

Изменения в поведении загрузки

Начиная с .NET 8 поведение элемента управления, загружающего удаленный образ, PictureBox изменилось. По умолчанию System.Net.ServicePointManager.CheckCertificateRevocationList свойство имеет значение true , прежде чем удаленный образ будет скачан через WebClient. Этот параметр гарантирует, что серверы с сертификатами проверяют эти сертификаты в списке отзыва центра сертификации (CRL) в рамках процесса проверки.

Предупреждение

После загрузки CheckCertificateRevocationList удаленного образа изменяется на true время существования приложения. При необходимости можно отменить изменения вручнуюfalse, но как только загружается другой удаленный образ, CheckCertificateRevocationList устанавливается значение true.

Ранее работающий удаленный ресурс может не загрузиться, если локально кэшированный список отзыва сертификатов устарел и не удается получить обновление. Это может произойти, если сеть, в которую выполняется приложение, ограничена, а расположение списка отзыва сертификатов отсутствует в списке разрешений.

Также возможно, что задержка при проверке списка отзыва сертификатов негативно влияет на работу приложения.

Вы можете отказаться от этого поведения, задав System.Windows.Forms.ServicePointManagerCheckCrl параметр для приложения одним из следующих способов:

  • Присвойте свойству значение false в файле конфигурации [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • <RuntimeHostConfigurationOption> Добавьте элемент в файл проекта, чтобы отключить его:

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

Применяется к