컨트롤 요소에 X자가 나타납니다.

안녕하세요, winform을 사용해서 프로그램을 만들었는데, 설치 파일로 만든 후에 설치해서
동작 시켰을 때, 작동이 잘 되다가 몇 시간 켜두고 나중에 와서 보니까 갑자기 그래프 컨트롤이 나타나야 하는 자리에 붉은 X표시가 떠서요, 다른 요소나 그래프는 잘 나타나는데 부분적으로 저런 현상이 나타납니다.

그래프는 scottplot 사용했구요,

노트북RAM이 8GB에서 실행시키긴 했는데, 노트북이 문제인지 프로그램이 문제인지 정확한 원인을 잘 모르겠습니다, 혹시 짐작 가는게 있으신 분들 조언 부탁 드립니다ㅠ

캡처

32bit로 만들어졌나요?
일반적으로 메모리가 부족할때 발생하는 것 같습니다.

빨간 엑스 표시는 WinForms에서 OnPaint 이벤트(WM_PAINT 메시지) 처리 중 예외가 발생했을 경우 나타납니다.

제 경험 상으로는 Cross Thread 상황에서 GUI를 그리는데 필요한 멤버를 다른 Thread에서 변경할 경우 Drawing 상태가 깨져서 발생하곤 했는데요.
그래프 컨트롤이라고 하시니 다른 Thread에서 그래프 라인을 구성하는 배열이나 리스트를 업데이트 한 것이 아닌가 추측해봅니다.

예를 들어 메인 Thread가 OnPaint이벤트에 의해 그래프를 그리기 위해 길이 100의 시퀀스를 for문을 통해 돌던 중 마지막 요소[99]를 처리하는 시점에 Thread Context Switch가 일어나고, 다른 Thread에서 리스트 요소를 삭제하여 길이가 99로 줄어들게 된 뒤, 다시 메인 Thread로 Context Switching되면 IndexOutOfException이 발생합니다. OnPaint 중 예외가 발생한 것이므로 이 경우 빨간색 X박스를 표시합니다.

관련 검색어
winform cross thread red x - Google 검색

4 Likes