Sdílet prostřednictvím


PictureBox.LoadAsync Metoda

Definice

Načte image asynchronně.

Přetížení

LoadAsync(String)

Asynchronně načte image v zadaném umístění.

LoadAsync()

Načte image asynchronně.

LoadAsync(String)

Asynchronně načte image v zadaném umístění.

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

Parametry

url
String

Cesta obrázku, která se má zobrazit v PictureBox.

Příklady

Následující příklad kódu ukazuje, jak použít metodu LoadAsync . Chcete-li spustit tento příklad, vložte následující kód do formuláře Windows, který obsahuje pojmenované PictureBoxpictureBox1 a pojmenované ButtonstartLoadButton. Ujistěte se, že Click je událost tlačítka přidružená k metodě v tomto příkladu startLoadButton_Click . Musíte změnit cestu k souboru obrázku na cestu, která je platná ve vašem systému.

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

Poznámky

url Pokud parametr označuje místní soubor, doporučeným formátem je cesta k místnímu souboru. Například soubor obrázku s názvem myPicture.jpg umístěný v umístění c:\ by byl přístupný předáním c:\myPicture.jpg parametru url . Můžete použít úplnou cestu, například http://www.contoso.com/path/images/image.jpg, nebo relativní cestu, například ./images/image.jpg. Pokud se použije relativní cesta, bude považována za relativní vzhledem k pracovnímu adresáři. Volání Load metody nastaví ImageLocation vlastnost na hodnotu parametru url .

Volání LoadAsync metody nastaví ImageLocation vlastnost na hodnotu url. Kromě volání LoadAsync metody musíte nastavit WaitOnLoad vlastnost na , false aby se obrázek načetl asynchronně. Když načítáte image asynchronně, můžete zpracovat LoadProgressChanged událost a určit průběh načítání obrázku LoadCompleted nebo událost určit, kdy se načítání image dokončilo. Pokud dojde k chybě během asynchronní operace načítání image, bude zachycena a hlášena Error vlastností AsyncCompletedEventArgs.

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Load(String).

Změny chování při načítání

Od verze .NET 8 se změnilo chování, jakým PictureBox ovládací prvek načítá vzdálenou image. Ve výchozím nastavení je vlastnost nastavena System.Net.ServicePointManager.CheckCertificateRevocationList na true před stažením vzdálené image prostřednictvím WebClient. Toto nastavení zajistí, že servery s certifikáty budou mít tyto certifikáty v rámci procesu ověření zkontrolovány v seznamu odvolaných certifikátů (CRL).

Upozornění

Jakmile se načte vzdálená image, CheckCertificateRevocationList změní se na true po celou dobu životnosti aplikace. V případě potřeby se můžete vrátit zpět na false ručně, ale jakmile se načte jiná vzdálená image, CheckCertificateRevocationList nastaví se na truehodnotu .

Dříve fungující vzdálený prostředek se nemusí načíst, pokud je seznam CRL uložený v místní mezipaměti zastaralý a aktualizaci nejde načíst. K tomu může dojít v případě, že síť, ve které je aplikace spuštěná, je omezená a umístění seznamu CRL není na seznamu povolených.

Je také možné, že zpoždění při kontrole seznamu CRL negativně ovlivní schopnost aplikace fungovat.

Toto chování můžete odhlásit nastavením System.Windows.Forms.ServicePointManagerCheckCrl možnosti aplikace jedním z následujících způsobů:

  • V konfiguračním souboru [app] nastavte vlastnost na false hodnotu .runtimeconfig.json:

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Přidejte položku <RuntimeHostConfigurationOption> do souboru projektu, abyste ji zakázali:

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

Platí pro

LoadAsync()

Načte image asynchronně.

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

Poznámky

Kromě volání LoadAsync metody WaitOnLoad musí být vlastnost nastavena na, false aby se image načetla asynchronně. Když načítáte image asynchronně, můžete zpracovat LoadProgressChanged událost a určit průběh načítání obrázku LoadCompleted nebo událost určit, kdy se načítání image dokončilo.

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Load().

Změny chování při načítání

Od verze .NET 8 se změnilo chování, jakým PictureBox ovládací prvek načítá vzdálenou image. Ve výchozím nastavení je vlastnost nastavena System.Net.ServicePointManager.CheckCertificateRevocationList na true před stažením vzdálené image prostřednictvím WebClient. Toto nastavení zajistí, že servery s certifikáty budou mít tyto certifikáty v rámci procesu ověření zkontrolovány v seznamu odvolaných certifikátů (CRL).

Upozornění

Jakmile se načte vzdálená image, CheckCertificateRevocationList změní se na true po celou dobu životnosti aplikace. V případě potřeby se můžete vrátit zpět na false ručně, ale jakmile se načte jiná vzdálená image, CheckCertificateRevocationList nastaví se na truehodnotu .

Dříve fungující vzdálený prostředek se nemusí načíst, pokud je seznam CRL uložený v místní mezipaměti zastaralý a aktualizaci nejde načíst. K tomu může dojít v případě, že síť, ve které je aplikace spuštěná, je omezená a umístění seznamu CRL není na seznamu povolených.

Je také možné, že zpoždění při kontrole seznamu CRL negativně ovlivní schopnost aplikace fungovat.

Toto chování můžete odhlásit nastavením System.Windows.Forms.ServicePointManagerCheckCrl možnosti aplikace jedním z následujících způsobů:

  • V konfiguračním souboru [app] nastavte vlastnost na false hodnotu .runtimeconfig.json:

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • Přidejte položku <RuntimeHostConfigurationOption> do souboru projektu, abyste ji zakázali:

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

Platí pro