-
출처 : ChatGPT
Control 클래스의 모든 UI 컨트롤은 InvokeRequired 속성을 가지고 있으며, 이 속성이 true이면 해당 코드가 UI 스레드가 아닌 다른 스레드에서 실행되고 있다는 뜻입니다.
if (this.InvokeRequired) { // UI 스레드가 아님 Console.WriteLine("This is not the UI thread."); } else { // UI 스레드에서 실행 중 Console.WriteLine("This is the UI thread."); }
- this.InvokeRequired: 자식 폼이 현재 UI 스레드에서 실행 중인지 여부를 확인합니다. this는 자식 폼을 가리킵니다. 만약 true를 반환하면 UI 스레드 외부에서 실행 중인 것입니다.
- false가 반환되면 해당 코드가 UI 스레드에서 실행 중임을 의미합니다.
예시:
if (this.InvokeRequired) { this.BeginInvoke((MethodInvoker)delegate { // UI 스레드에서 실행할 코드 UpdateUI(); }); } else { // 이미 UI 스레드에서 실행 중이므로 바로 실행 UpdateUI(); }
'프로그래밍언어 > C#' 카테고리의 다른 글
[C# WinForm] 화면상 좌표 가져오기 (0) 2024.09.04 [C#] @의 의미 (0) 2024.05.13 [C#] 비주얼 스튜디오 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다 (0) 2023.04.11 [C#] if문에서 문자열 비교하기 (0) 2023.04.11 댓글