작성
·
38
0
안녕하세요 이번에 폼 뷰를 공부하면서 이럴경우가 분명 있을껀데 이에 대한 대처 방안이 있을까요?
상황은 이렇습니다.
Main 폼 뷰에 child form을 띄었습니다.
그리고 버튼을 누르면 다른 클레스를 불러오는데 그 클레스에 delegate를 사용한 이벤트를 생성하고 이 이벤트 발생하면
child Form에 이벤트 nResponseReceived(callback함수)가 동작 하겠죠.. 근데 이벤트가 생성되고 발생되는 시간이 너무 ~~ 길어요 한 7초??
그래서 사용자가 답답해서 child Form을 닫아 버렸습니다. 이벤트는 callback 함수 찾아서 가고 있죠.. 이벤트가 다 처리되고 callback함수에 도착 했는데 결과를 출력해줘야할 listView의 핸들이 창을 닫아 버려서 사라졌네... ?? 그래서 그냥 프로그램이 죽어 버려요...
혹시 진행중인 이벤트 취소 하는 방법 없나요??
아니면 창 닫기 전에 진행중인 이벤트 체크해서 완료 될 때 까지 기다리는 스레드라도 동작 시켜야하나요?
답변 1
0
안녕하세요 개발자park입니다.
[강의 메모 중]
Event가 호출될 때 Event Handler가 정의되지 않은 경우를 방지하고
아래처럼 해주십니다.
아래에서
OnConnected가 정의된 event입니다.
var handler = OnConnected;
if (handler != null)
{
handler("보낼 데이터");
}
감사합니다.