WindowsFormsApplicationBase.DoEvents 메서드

정의

현재 메시지 큐에 있는 모든 Windows 메시지를 처리합니다.

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

예제

이 예제에서는 메서드를 My.Application.DoEvents 사용하여 에 대한 TextBox1 UI가 업데이트되도록 허용합니다.

Private Sub TestDoEvents()
    For i As Integer = 0 To 10000
        TextBox1.Text = i.ToString
        My.Application.DoEvents()
    Next
End Sub

이 코드는 속성이 있는 구성 요소가 Text 있는 TextBox1 형식이어야 합니다.

설명

My.Application.DoEvents 메서드를 사용 하면 애플리케이션 코드를 실행 하는 동안 발생할 수 있는 다른 이벤트를 처리할 수 있습니다. My.Application.DoEvents 메서드는 메서드와 동일한 동작을 가합니다DoEvents.

Windows Forms 애플리케이션을 실행 하는 경우에 다음 이벤트가 처리 될 때까지 대기 하는 새 폼을 만듭니다. 폼이 단추 클릭과 같은 이벤트를 처리할 때마다 해당 이벤트와 연결된 모든 코드를 처리합니다. 다른 모든 이벤트는 큐에서 대기합니다. 코드에서 이벤트를 처리 하는 동안 애플리케이션이 응답 하지 않습니다. 예를 들어 다른 창을 위쪽으로 끌면 창이 다시 그려지지 않습니다.

호출 하는 경우 My.Application.DoEvents 애플리케이션 코드에서 다른 이벤트를 처리할 수 있습니다. 예를 들어 코드가 루프의 에 ListBox 데이터를 추가하고 루프의 각 단계 후에 를 호출 My.Application.DoEvents하면 다른 창이 끌어와면 양식이 다시 그려집니다. 코드에서 제거 My.Application.DoEvents 하면 단추의 클릭 이벤트 처리기 실행이 완료될 때까지 양식이 다시 그려지지 않습니다.

일반적으로 루프에서 이 메서드를 사용하여 메시지를 처리합니다.

참고

메서드는 My.Application.DoEvents 폼과 정확히 동일한 방식으로 이벤트를 처리하지 않습니다. 다중 스레딩을 사용하여 폼이 이벤트를 직접 처리하도록 합니다. 자세한 내용은 스레드 및 스레딩 사용을 참조하세요.

주의

UI(사용자 인터페이스) 이벤트를 처리하는 메서드가 메서드를 호출 My.Application.DoEvents 하는 경우 메서드가 완료되기 전에 메서드를 다시 입력할 수 있습니다. 이 문제는 메서드가 My.Application.DoEvents Windows 메시지를 처리하고 Windows 메시지가 이벤트를 발생할 수 있기 때문에 발생할 수 있습니다.

다음 표에서 관련 된 작업의 예로 My.Application.DoEvents 메서드.

대상 참조 항목
사용 중인 동안 양식이 UI 입력에 응답하도록 허용 연습: 이벤트 처리

프로젝트 형식에 따라 가용성

프로젝트 형식 사용 가능
Windows Forms 애플리케이션
클래스 라이브러리 No
콘솔 애플리케이션 No
Windows Forms 컨트롤 라이브러리 No
웹 컨트롤 라이브러리 No
Windows 서비스 No
웹 사이트 No

적용 대상

추가 정보