다음을 통해 공유


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 메서드를 사용하는 방법을 보여 줍니다. 이 예제를 실행하려면 명명된 및 Button 라는 pictureBox1startLoadButton가 포함된 PictureBox Windows Form에 다음 코드를 붙여넣습니다. 단추에 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 라는 이미지 파일에는 매개 변수를 url 전달 c:\myPicture.jpg 하여 액세스할 수 있습니다. 와 같은 http://www.contoso.com/path/images/image.jpg전체 경로 또는 ./images/image.jpg같은 상대 경로를 사용할 수 있습니다. 상대 경로를 사용하는 경우 작업 디렉터리를 기준으로 고려됩니다. 메서드에 대한 호출은 Load 속성을 매개 변수 값으로 url 설정합니다ImageLocation.

메서드에 대한 호출은 LoadAsync 속성을 값url으로 설정합니다ImageLocation. 메서드를 호출하는 LoadAsync 것 외에도 속성을 로 설정 WaitOnLoadfalse 하여 이미지를 비동기적으로 로드해야 합니다. 이미지를 비동기적으로 로드하는 경우 이벤트를 처리 LoadProgressChanged 하여 이미지 로드 진행률을 확인하거나 LoadCompleted 이벤트를 처리하여 이미지 로드가 완료된 시기를 확인할 수 있습니다. 비동기 이미지 로드 작업 중에 오류가 발생하면 의 AsyncCompletedEventArgs속성에 의해 Error catch되고 보고됩니다.

이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 작업에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw Load(String)된 예외를 참조하세요.

부하 동작 변경

.NET 8부터 컨트롤이 원격 이미지를 로드하는 방식 PictureBox 의 동작이 변경되었습니다. 기본적으로 속성은 System.Net.ServicePointManager.CheckCertificateRevocationList 를 통해 WebClient원격 이미지를 다운로드하기 전에 로 설정 true 됩니다. 이 설정을 사용하면 인증서가 있는 서버가 유효성 검사 프로세스의 일부로 CRL(인증 기관 해지 목록)에 대해 해당 인증서를 검사하도록 합니다.

경고

원격 이미지가 로드되는 CheckCertificateRevocationList 즉시 는 앱의 수명 동안 으로 true 변경됩니다. 필요한 경우 수동으로 로 되돌리기 false 수 있지만 다른 원격 이미지가 로드되는 즉시 가 로 true설정됩니다CheckCertificateRevocationList.

로컬로 캐시된 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 ()

설명

메서드 WaitOnLoad 를 호출하는 LoadAsync 것 외에도 속성을 로 설정 false 하여 이미지를 비동기적으로 로드해야 합니다. 이미지를 비동기적으로 로드하는 경우 이벤트를 처리 LoadProgressChanged 하여 이미지 로드 진행률을 확인하거나 LoadCompleted 이벤트를 처리하여 이미지 로드가 완료된 시기를 확인할 수 있습니다.

이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 작업에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw Load()된 예외를 참조하세요.

부하 동작 변경

.NET 8부터 컨트롤이 원격 이미지를 로드하는 방식 PictureBox 의 동작이 변경되었습니다. 기본적으로 속성은 System.Net.ServicePointManager.CheckCertificateRevocationList 를 통해 WebClient원격 이미지를 다운로드하기 전에 로 설정 true 됩니다. 이 설정을 사용하면 인증서가 있는 서버가 유효성 검사 프로세스의 일부로 CRL(인증 기관 해지 목록)에 대해 해당 인증서를 검사하도록 합니다.

경고

원격 이미지가 로드되는 CheckCertificateRevocationList 즉시 는 앱의 수명 동안 으로 true 변경됩니다. 필요한 경우 수동으로 로 되돌리기 false 수 있지만 다른 원격 이미지가 로드되는 즉시 가 로 true설정됩니다CheckCertificateRevocationList.

로컬로 캐시된 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>
    

적용 대상