PictureBox.LoadAsync 方法

定义

异步加载图像。

重载

LoadAsync(String)

异步加载位于指定位置的图像。

LoadAsync()

异步加载图像。

LoadAsync(String)

异步加载位于指定位置的图像。

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 方法。 若要运行此示例,请将以下代码粘贴到包含 PictureBox 名为 pictureBox1ButtonstartLoadButtonWindows 窗体中。 确保 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如果 参数指示本地文件,则建议的格式是本地文件路径。 例如,可以通过传递 c:\myPicture.jpgurl 参数来访问位于 c:\ 处的名为 myPicture.jpg 的图像文件。 可以使用完整路径(如 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 发生了变化。 默认情况下,在通过 WebClient下载远程映像之前, System.Net.ServicePointManager.CheckCertificateRevocationList 属性设置为 true 。 此设置可确保具有证书的服务器在验证过程中根据证书颁发机构吊销列表 (CRL) 检查这些证书。

警告

加载远程映像后, CheckCertificateRevocationList 在应用的生存期内立即更改为 true 。 如果需要,可以手动还原返回到 false ,但加载另一个远程映像后,CheckCertificateRevocationList立即将 设置为 true

当本地缓存的 CRL 过期且无法检索更新时,以前工作的远程资源可能无法加载。 当运行应用的网络受到限制,并且 CRL 位置不在允许列表上时,可能会发生这种情况。

检查 CRL 的延迟也可能对应用运行能力产生负面影响。

可以通过以下方法之一为应用设置 System.Windows.Forms.ServicePointManagerCheckCrl 选项来选择退出此行为:

  • [app].runtimeconfig.json配置文件中,将 属性false设置为 :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • <RuntimeHostConfigurationOption>在项目文件中添加项以禁用它:

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

适用于

LoadAsync()

异步加载图像。

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

注解

除了调用 LoadAsync 方法之外, WaitOnLoad 属性必须设置为 false 才能异步加载图像。 异步加载图像时,可以处理 LoadProgressChanged 事件以确定图像加载的进度, LoadCompleted 或处理 事件以确定图像加载何时完成。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Load()异常。

加载行为更改

从 .NET 8 开始,控件加载远程图像的行为 PictureBox 发生了变化。 默认情况下,在通过 WebClient下载远程映像之前, System.Net.ServicePointManager.CheckCertificateRevocationList 属性设置为 true 。 此设置可确保具有证书的服务器在验证过程中根据证书颁发机构吊销列表 (CRL) 检查这些证书。

警告

加载远程映像后, CheckCertificateRevocationList 在应用的生存期内立即更改为 true 。 如果需要,可以手动还原返回到 false ,但加载另一个远程映像后,CheckCertificateRevocationList立即将 设置为 true

当本地缓存的 CRL 过期且无法检索更新时,以前工作的远程资源可能无法加载。 当运行应用的网络受到限制,并且 CRL 位置不在允许列表上时,可能会发生这种情况。

检查 CRL 的延迟也可能对应用运行能力产生负面影响。

可以通过以下方法之一为应用设置 System.Windows.Forms.ServicePointManagerCheckCrl 选项来选择退出此行为:

  • [app].runtimeconfig.json配置文件中,将 属性false设置为 :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • <RuntimeHostConfigurationOption>在项目文件中添加项以禁用它:

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

适用于