다음을 통해 공유


이벤트 및 콜백

콜백 메서드는 작업이나 동작이 완료되면 대리자에 의해 자동으로 호출되는 메서드입니다. 예를 들어, 비동기 디자인 패턴 중 하나는 AsyncCallback 대리자를 사용하여 비동기 작업이 완료될 때 실행할 코드를 지정합니다. 이 디자인 패턴은 콜백을 사용하여 비동기식 쓰기 작업의 결과를 처리하는 BeginWrite 메서드에 사용됩니다.

이벤트는 콜백과 유사한 메커니즘으로, 일반적으로 상태 변경이나 작업의 시작 또는 끝과 관련된 특정 조건에서 사용자 지정 코드가 실행될 수 있도록 합니다. 언어 구문과 도구에서 이벤트를 인식하고 처리하는 단일형 코딩 환경을 제공하므로 이벤트는 콜백보다 사용하기 쉽습니다. 또한 이벤트는 잘 정의된 시그니처 패턴을 가진 이벤트 처리기라고 하는 대리자에 의해서도 처리됩니다. 이벤트에 대한 자세한 내용은 이벤트 디자인을 참조하십시오.

다음 지침은 라이브러리 디자인에서 최선의 구현 방법에 따라 이벤트와 콜백을 사용하는 데 도움이 됩니다.

사용자가 Framework에서 실행될 사용자 지정 코드를 제공할 수 있도록 콜백을 사용할 수 있습니다.

사용자가 개체 방향을 이해할 필요 없이 프레임워크의 동작을 사용자 지정할 수 있도록 이벤트를 사용할 수 있습니다.

이벤트는 광범위한 개발자에게 친숙하고 Visual Studio 문 완성과 통합되어 있기 때문에 일반 콜백보다 이벤트를 사용하는 것이 좋습니다.

성능에 민감한 API에서 콜백을 사용하지 않습니다.

콜백과 이벤트는 많은 개발자가 이해하고 사용하기 쉽지만, 성능과 메모리 사용 측면에서 볼 때 가상 멤버를 사용하는 것이 더 좋습니다.

대리자를 호출하면 보안, 정확성 및 호환성 영향을 줄 수 있는 임의의 코드가 실행될 수 있습니다.

이벤트와 콜백을 사용하면 임의의 코드가 CLR(공용 언어 런타임) 환경에서 실행될 수 있습니다. 코드 및 보안 검토 시 보안상 취약한 부분을 식별하도록 이러한 확장성 지점을 신중하게 검사해야 합니다.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

디자인 지침에 자세한 내용은 참조를 "Framework 디자인 지침: 규칙, 숙어, 및 재사용에 대 한 패턴입니다.NET 라이브러리"도 서 Krzysztof Cwalina와 Brad Abrams, 게시 Addison-wesley, 2005.

참고 항목

기타 리소스

확장성을 위한 디자인

클래스 라이브러리 개발을 위한 디자인 지침