DispatchSource.Cancel 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디스패치 원본을 비동기적으로 취소합니다.
public void Cancel ();
member this.Cancel : unit -> unit
설명
함수는 Cancel() 디스패치 원본을 비동기적으로 취소하여 이벤트 처리기 블록이 더 이상 호출되지 않도록 합니다. 취소는 현재 실행 중인 처리기 블록(선점이 아님)을 중단하지 않습니다. 원본이 처음 다시 시작되기 전에 취소되면 해당 이벤트 처리기가 호출되지 않습니다. (이 경우 원본을 해제하려면 먼저 다시 시작해야 합니다.)
함수를 IsCanceled 사용하여 지정된 원본이 취소되었는지 여부를 확인할 수 있습니다.
디스패치 원본이 취소되면 선택적 취소 처리기가 대상 큐에 제출됩니다. 취소 처리기는 를 통해 SetCancelHandler(Action)지정할 수 있습니다. 이 취소 처리기는 호출의 직접적인 결과로 한 번만 호출 Cancel()됩니다.
중요: 설명자를 안전하게 닫거나 포트를 삭제하려면 파일 설명자 및 마하 포트 기반 원본에 취소 처리기가 필요합니다. 취소 처리기가 실행되기 전에 설명자 또는 포트를 닫으면 경합 상태가 발생할 수 있습니다. 원본의 이벤트 처리기가 계속 실행되는 동안 새 설명자가 최근에 닫힌 설명자와 동일한 값으로 할당되면 이벤트 처리기가 잘못된 설명자에 데이터를 읽고 쓸 수 있습니다.