PictureBox.LoadAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 true
hodnotu .
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 true
hodnotu .
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>