이벤트(C# 프로그래밍 가이드)

업데이트: 2007년 11월

클래스나 개체에서는 특정 상황이 발생할 때 이벤트를 통해 다른 클래스나 개체에 이를 알려 줄 수 있습니다. 이벤트를 보내거나 발생시키는 클래스를 게시자라고 하며 이벤트를 받거나 처리하는 클래스를 구독자라고 합니다.

일반적인 C# Windows Forms 또는 응용 프로그램에서는 단추 및 목록 상자와 같은 컨트롤에서 발생하는 이벤트를 구독합니다. Visual C# IDE(통합 개발 환경)를 사용하여 컨트롤이 게시하는 이벤트를 찾고 처리할 이벤트를 선택할 수 있습니다. IDE에서는 빈 이벤트 처리기 메서드와 이벤트를 구독할 수 있는 코드를 자동으로 추가합니다. 자세한 내용은 방법: 이벤트 구독 및 구독 취소(C# 프로그래밍 가이드)를 참조하십시오.

이벤트 개요

이벤트에는 다음과 같은 속성이 있습니다.

  • 게시자는 이벤트가 발생하는 시기를 결정하고 구독자는 이벤트에 대한 응답으로 수행되는 동작을 결정합니다.

  • 한 이벤트에 여러 개의 구독자가 있을 수 있습니다. 구독자는 여러 게시자의 이벤트를 여러 가지 처리할 수 있습니다.

  • 구독자가 없는 이벤트는 발생되지 않습니다.

  • 이벤트는 일반적으로 그래픽 사용자 인터페이스에서 단추를 클릭하거나 메뉴를 선택하는 것과 같은 사용자 동작을 알리는 데 사용됩니다.

  • 이벤트에 여러 구독자가 있으면 해당 이벤트가 발생할 때 여러 이벤트 처리기기가 동기적으로 호출됩니다. 이벤트를 동기적으로 호출하려면 동기 메서드를 비동기 방식으로 호출을 참조하십시오.

  • 이벤트는 스레드를 동기화하는 데 사용할 수 있습니다.

  • .NET Framework 클래스 라이브러리에서 이벤트는 EventHandler 대리자 및 EventArgs 기본 클래스를 기반으로 합니다.

관련 단원

자세한 내용은 다음을 참조하십시오.

C# 언어 사양

자세한 내용은 C# 언어 사양에서 다음 단원을 참조하십시오.

  • 1.6.7.4 이벤트

  • 10.2.9.2 이벤트에 예약된 멤버 이름

  • 10.8 이벤트

  • 13.2.3 인터페이스 이벤트

참고 항목

개념

C# 프로그래밍 가이드

참조

대리자(C# 프로그래밍 가이드)

EventHandler

기타 리소스

Windows Forms에서 이벤트 처리기 만들기

이벤트 기반 비동기 패턴을 사용한 다중 스레드 프로그래밍