Udostępnij za pośrednictwem


PictureBox.LoadAsync Metoda

Definicja

Ładuje obraz asynchronicznie.

Przeciążenia

LoadAsync(String)

Ładuje obraz w określonej lokalizacji asynchronicznie.

LoadAsync()

Ładuje obraz asynchronicznie.

LoadAsync(String)

Ładuje obraz w określonej lokalizacji asynchronicznie.

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

Ścieżka obrazu do wyświetlenia w pliku PictureBox.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać LoadAsync metody . Aby uruchomić ten przykład, wklej następujący kod w formularzu systemu Windows zawierającym PictureBox nazwę pictureBox1 i Button nazwę startLoadButton. Upewnij się, że Click zdarzenie przycisku jest skojarzone z startLoadButton_Click metodą w tym przykładzie. Należy zmienić ścieżkę pliku obrazu na ścieżkę prawidłową w systemie.

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

Uwagi

url Jeśli parametr wskazuje plik lokalny, zalecanym formatem jest ścieżka pliku lokalnego. Na przykład plik obrazu o nazwie myPicture.jpg znajdujący się w lokalizacji c:\ będzie dostępny przez przekazanie c:\myPicture.jpg parametru url . Można użyć pełnej ścieżki, takiej jak http://www.contoso.com/path/images/image.jpg, lub ścieżki względnej, takiej jak ./images/image.jpg. Jeśli używana jest ścieżka względna, zostanie ona uznana za względną dla katalogu roboczego. Wywołanie Load metody ustawia ImageLocation właściwość na wartość parametru url .

Wywołanie LoadAsync metody ustawia ImageLocation właściwość na wartość url. Oprócz wywoływania LoadAsync metody należy ustawić WaitOnLoad właściwość tak, aby false ładowała obraz asynchronicznie. Podczas asynchronicznego ładowania obrazu można obsłużyć LoadProgressChanged zdarzenie w celu określenia postępu ładowania obrazu lub LoadCompleted zdarzenia w celu określenia, kiedy ładowanie obrazu zostało ukończone. Jeśli podczas operacji ładowania obrazów asynchronicznych wystąpi błąd, zostanie on przechwycony i zgłoszony przez Error właściwość AsyncCompletedEventArgs.

Ta metoda jest przechowywana w zadaniu, które zwraca wszystkie wyjątki nieużytowe, które może zgłosić synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwracanym zadaniu, ten wyjątek zostanie zgłoszony podczas oczekiwania zadania. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. W przypadku przechowywanych wyjątków zobacz wyjątki zgłoszone przez Load(String)usługę .

Zmiany zachowania ładowania

Począwszy od platformy .NET 8, zachowanie sposobu, w jaki PictureBox kontrolka ładuje zdalny obraz, uległ zmianie. Domyślnie System.Net.ServicePointManager.CheckCertificateRevocationList właściwość jest ustawiana na true wartość przed pobraniem obrazu zdalnego za pośrednictwem polecenia WebClient. To ustawienie zapewnia, że serwery z certyfikatami mają te certyfikaty sprawdzane względem listy odwołania urzędu certyfikacji (CRL) w ramach procesu weryfikacji.

Ostrzeżenie

Po załadowaniu CheckCertificateRevocationList obrazu zdalnego zostanie zmieniony na true okres istnienia aplikacji. Jeśli jest to wymagane, możesz przywrócić false ręcznie, ale po załadowaniu CheckCertificateRevocationList innego obrazu zdalnego jest ustawiona wartość true.

Wcześniej działający zasób zdalny może zakończyć się niepowodzeniem, gdy lokalnie buforowana lista CRL jest nieaktualna i nie można pobrać aktualizacji. Może się tak zdarzyć, gdy sieć, na którym działa aplikacja, jest ograniczona, a lokalizacja listy CRL nie znajduje się na liście dozwolonych.

Istnieje również możliwość, że opóźnienie sprawdzania listy CRL negatywnie wpływa na zdolność aplikacji do działania.

Możesz zrezygnować z tego zachowania, ustawiając System.Windows.Forms.ServicePointManagerCheckCrl opcję dla aplikacji na jeden z następujących sposobów:

  • Ustaw właściwość na false w pliku konfiguracji [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • <RuntimeHostConfigurationOption> Dodaj element w pliku projektu, aby go wyłączyć:

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

Dotyczy

LoadAsync()

Ładuje obraz asynchronicznie.

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

Uwagi

Oprócz wywoływania LoadAsync metody WaitOnLoad należy ustawić właściwość , aby ładować false obraz asynchronicznie. Podczas asynchronicznego ładowania obrazu można obsłużyć LoadProgressChanged zdarzenie w celu określenia postępu ładowania obrazu lub LoadCompleted zdarzenia w celu określenia, kiedy ładowanie obrazu zostało ukończone.

Ta metoda jest przechowywana w zadaniu, które zwraca wszystkie wyjątki nieużytowe, które może zgłosić synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwracanym zadaniu, ten wyjątek zostanie zgłoszony podczas oczekiwania zadania. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. W przypadku przechowywanych wyjątków zobacz wyjątki zgłoszone przez Load()usługę .

Zmiany zachowania ładowania

Począwszy od platformy .NET 8, zachowanie sposobu, w jaki PictureBox kontrolka ładuje zdalny obraz, uległ zmianie. Domyślnie System.Net.ServicePointManager.CheckCertificateRevocationList właściwość jest ustawiana na true wartość przed pobraniem obrazu zdalnego za pośrednictwem polecenia WebClient. To ustawienie zapewnia, że serwery z certyfikatami mają te certyfikaty sprawdzane względem listy odwołania urzędu certyfikacji (CRL) w ramach procesu weryfikacji.

Ostrzeżenie

Po załadowaniu CheckCertificateRevocationList obrazu zdalnego zostanie zmieniony na true okres istnienia aplikacji. Jeśli jest to wymagane, możesz przywrócić false ręcznie, ale po załadowaniu CheckCertificateRevocationList innego obrazu zdalnego jest ustawiona wartość true.

Wcześniej działający zasób zdalny może zakończyć się niepowodzeniem, gdy lokalnie buforowana lista CRL jest nieaktualna i nie można pobrać aktualizacji. Może się tak zdarzyć, gdy sieć, na którym działa aplikacja, jest ograniczona, a lokalizacja listy CRL nie znajduje się na liście dozwolonych.

Istnieje również możliwość, że opóźnienie sprawdzania listy CRL negatywnie wpływa na zdolność aplikacji do działania.

Możesz zrezygnować z tego zachowania, ustawiając System.Windows.Forms.ServicePointManagerCheckCrl opcję dla aplikacji na jeden z następujących sposobów:

  • Ustaw właściwość na false w pliku konfiguracji [app].runtimeconfig.json :

    {
      "configProperties": {
        "System.Windows.Forms.ServicePointManagerCheckCrl": false
      }
    }
    
  • <RuntimeHostConfigurationOption> Dodaj element w pliku projektu, aby go wyłączyć:

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

Dotyczy