次の方法で共有


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 メソッドの使用方法を示します。 この例を実行するには、次のコードを、名前付き と という名前startLoadButtonpictureBox1PictureBox を含む Windows フォームにButton貼り付けます。 ボタンのイベントが 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.jpg という名前のイメージ ファイルにアクセスする場合は、 パラメーターをurlc:\myPicture.jpgします。 などの完全なパス、 http://www.contoso.com/path/images/image.jpgまたは ./images/image.jpgなどの相対パスを使用できます。 相対パスを使用すると、作業ディレクトリに対する相対パスと見なされます。 メソッドを Load 呼び出すと、 プロパティが ImageLocation パラメーターの値に url 設定されます。

メソッドの呼び出しにより LoadAsync 、 プロパティが ImageLocationurl値に設定されます。 メソッドを呼び出す以外に LoadAsync 、 プロパティを WaitOnLoadfalse 設定して、イメージを非同期に読み込む必要があります。 イメージを非同期に読み込む場合は、 イベントを LoadProgressChanged 処理してイメージの読み込みの進行状況を確認したり、イベントを LoadCompleted 処理してイメージの読み込みがいつ完了したかを判断したりできます。 非同期のイメージ読み込み操作中にエラーが発生した場合は、 の AsyncCompletedEventArgsプロパティによってErrorキャッチされ、報告されます。

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの 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 呼び出す以外に、 プロパティを WaitOnLoadfalse 設定して、イメージを非同期に読み込む必要があります。 イメージを非同期に読み込む場合は、 イベントを 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>
    

適用対象