You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TransferByMonthForm내에서 사용되는 유저 컨트롤의 이벤트 핸들러가 할당되어 있지 않았음.
기존에 할당되어 있었으나 내용이 왜 초기화 되어 있는지 원인을 알아내지 못함.
디자인 코드의 내용이 자동으로 계속 변경되면서 이벤트 핸들러가 누락된 것으로 추청됨.
결과(해결방안)
폼 코드에 직접 이벤트 핸들러를 수동으로 등록하여 해결함
참고할 코드나 스크린샷
//Codes from TransferByMonthForm.csprotectedoverridevoidOnLoad(EventArgse)// 폼 로드 시 이벤트{base.OnLoad(e);gothamMapControl.ButtonClicked+=newEventHandler<GothamMapControl1.ButtonClickedEventArgs>(gothamMapControl_ButtonClicked);//맵컨트롤 이벤트 핸들러 할당}
엑셀 파일 읽기 작업 진행 중 비정상 종료시 백그라운드 프로세스에 Excel이 남아있는 문제
원인
ImportForm에서 엑셀 파일을 읽어올 때 문제가 발생하거나, 작업 중간에 종료하면 윈도우 백그라운드 프로세스에 Excel이 남아있는 문제가 생긴다
그래서 엑셀 파일의 임시데이터가 남아있거나, 컴퓨터를 껏다 켜면 프로세스에 남아있던 엑셀이 실행되는 등의 문제가 발생한다
결과(해결방안)
엑셀 파일을 읽어오는 중에는 종료가 되지 않도록 막고, 작업 중지 기능을 추가함.
에러가 발생하거나 작업이 중지될 경우 엑셀 파일을 열기 위해 사용한 핸들러를 해제해 주도록 조치함.
참고할 코드나 스크린샷
// 프로그램 종료 시protectedoverridevoidOnClosing(CancelEventArgse){_pause.Reset();// ManualResetEvent 쓰레드로 작업을 일시 정지if(bgwLoader.IsBusy||bgwInsert.IsBusy)// 작업중에는 종료 취소{Utility.Mbox("경고","작업이 진행중입니다.\n종료하시려면 작업을 완료하시거나 중지해 주세요");e.Cancel=true;}_pause.Set();base.OnClosing(e);}// BackgroundWorker의 작업이 끝났을 때(오류 발생 및 취소)privatevoidbgwLoader_RunWorkerCompleted(objectsender,RunWorkerCompletedEventArgse){if(e.Error!=null||e.Cancelled==true){ReleaseObject(range);ReleaseObject(worksheet);ReleaseObject(workbook);application.Quit();ReleaseObject(application);return;}// ....}