C#에서 UI Thread 오류가 발생할 경우 아래와 같이 하나의 UI가 끝날 때까지 DoEvents() 함수를 호출하고 일정 시간이 지난 후에 UI 변경을 하도록 처리한다.
for (int i = 0; i < 10; i++)
{
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(1);
}
Tree의 Popup 메뉴로 창을 띄우는 코드를 하는데 Tree가 선택되어 Expand 되는 도중에 ShowDialog가 호출되어 UI Thread 오류가 발생했다. 그래서 Expand가 끝나는 시간까지 DoEvents 함수를 호출하게 한 후에 ShowDialog가 호출되니 오류가 발생하지 않았다.
'WPF' 카테고리의 다른 글
WPF MVVM TextBlock Foreground Binding (0) | 2023.06.16 |
---|---|
WPF MVVM Window Close Action 처리 (0) | 2023.06.15 |
WinForm안에 있는 WFP 창에서 owner를 지정하는 방법 (0) | 2023.02.08 |
Telerik RadRibbonView Example (리본바 메뉴 예제) (0) | 2022.01.19 |
Telerik Menu 추가 (0) | 2021.12.21 |