Open Planet-KIM opened 3 years ago
3. 추가 Study - Overall 함수가 어디에 참조되어 있는지 Ribbon.cs 파일 속 ButtonOverall_Click 입니다.
3.추가 Study - Overall 내의 변수, 함수들이 무엇을 의미하는지 { if (!_editModeManager.ExcelOperationIsSafe("Overall Simulation")) return; //엑셀 입력커서가 작동 중일때 뜨는 알림창 GetSheetObjects(); // 어떤 시트인지 판별하는 함수입니다. ex FMUSheet, InputSheet, OutputSheet options.StopRequest = false; // 내재된 라이브러리에서 제공하는 Option 클래스의 options 변수입니다. thisApplication.ScreenUpdating = false; //엑셀 스크린업데이트 false 설정, 수행속도 감소 thisApplication.DisplayAlerts = false; // 엑셀 경고창 fasle 설정
Thread overall = new Thread(() =>
{
try
{
Remote remote = new Remote(thisApplication, SheetObjects, options); //SheetObejcts는 엑셀에 Sheet 정보를
remote.PropertyChanged += remote_PropertyChanged; // 저장합니다.
SetStatus(ScoreStatus.Active); //라이선스 활성화 관련된 함수입니다.
remote.Overall();
}
catch (ArgumentException ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
catch (Exception ex)
{
MessageBox.Show("Unknown error at method buttonOverall_Click:\n\n" + ex.Message, "Error",
MessageBoxButton.OK,
MessageBoxImage.Error);
}
finally
{
SetStatus(ScoreStatus.Ready);
}
});
overall.SetApartmentState(ApartmentState.STA); // 스레드를 아파트 모드로 설정
overall.Start();
}
2. Overall을 반복문 등으로 여러번 수행 테스트를 해보시기를 권합니다. - Overall 메소드를 수행하면 무조건 Outputsheet에 결과가 출력되나요? -> 네. 시뮬레이션을 돌리게 되면 뜨는 Simulation 폼에서 결과가 끝난 후, "Close the window" 같은 버튼을 누르게 되면 자동적으로 OutputSheet에 결과가 출력됩니다.
-------"Close Window"를 누르면 그냥 창만 꺼집니다. 결과 출력과 관련 없음-------
1. Overall_Click을 생성자로 빼서 다른 class에 사용할 수 있는지에 대한 여부를 파악해서 알려주세요
Overall_Click을 쓰기 위해 Ribbon 클래스의 객체를 만들어 Ribbon 클래스의 Overall_click에 접근하는건 제약이 많습니다. 그래서 다른 클래스에서 똑같이 Overall_click 함수를 만들어 그 클래스의 객체에서 실행될 수 있게 했습니다.
자료는 정리해서 올리겠습니다.
@minkyoyeah Overall 메소드에 설명해주셔서 감사합니다.
overall.Start();
overall.Join();
MessageBox.Show("스레드 종료후 메시지 실행!");
네 Join(); 함수가 쓰레드가 종료될 때 까지 기다리는 작업인 것으로 압니다. interrupt()나 abort()도 많이 쓴다고 하는데 Join이 제일 나은 것 같아서 join()으로 썼습니다.
@minkyoyeah 참고부탁합니다.
@minkyoyeah 참고하면서 작성해주세요.
1. Overall_Click을 생성자로 빼서 다른 class에 사용할 수 있는지에 대한 여부를 파악해서 알려주세요.
2. Overall을 반복문 등으로 여러번 수행 테스트를 해보시기를 권합니다.
3. 추가 Study