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 方法。 若要執行此範例,請將下列程式代碼貼到 Windows Form 中,其中包含 PictureBox 具名 pictureBox1Button 具名 startLoadButton的 。 請確定 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 參數,即可存取名為 myPicture.jpg的映像檔 myPicture.jpg。 可以使用完整路徑,例如 http://www.contoso.com/path/images/image.jpg、或相對路徑,例如 ./images/image.jpg。 如果使用相對路徑,則會被視為相對於工作目錄。 對方法的呼叫會將 LoadImageLocation 屬性設定為 參數的值 url

對方法的呼叫會將 LoadAsyncImageLocation 屬性設定為 的值 url。 除了呼叫 LoadAsync 方法之外,您必須將 屬性設定 WaitOnLoadfalse ,以異步方式載入影像。 當您以異步方式載入影像時,您可以處理 LoadProgressChanged 事件來判斷影像載入的進度,或 LoadCompleted 判斷影像載入何時完成的事件。 如果在異步影像載入作業期間發生錯誤,則會由 ErrorAsyncCompletedEventArgs屬性攔截並報告。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用狀況例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用狀況例外狀況,例如 ArgumentException,仍會同步擲回。 如需預存的例外狀況,請參閱 所 Load(String)擲回的例外狀況。

載入行為變更

從 .NET 8 開始,控件載入遠端影像變更的行為 PictureBox 。 根據預設,System.Net.ServicePointManager.CheckCertificateRevocationList屬性會在透過 WebClient下載遠端映像之前設定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 。 根據預設,System.Net.ServicePointManager.CheckCertificateRevocationList屬性會在透過 WebClient下載遠端映像之前設定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>
    

適用於