728x90

안녕하세요. 공유민입니다.


이번 포스팅에서는 스레드 사용하는 방법에 대해 알아보겠습니다.


저 같은 경우는 프로그램에서 큰 작업을 처리할 때, 화면이 멈추는 현상이 생겨 


"프로그램 응답 없음" 이 뜨거나, 혹은 계속 움직여야하는 UI 인데(gif) 큰 작업을 처리할 때,


멈춰서 UI 쪽을 계속 그려주는 스레드를 사용했었습니다.


그럼 간단한 스레드 생성 및 사용 샘플 코드로 설명드리겠습니다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System.Threading;
using System.Threading.Tasks;
 
// ... 생략 ...// 
 
    public bool LargeTask()
    {
        // UI 담당 스레드 생성 및 메소드 할당
        Thread ThreadForUI = new Thread(delegate () { RefreshUI(); });
        
        // UI 스레드 시작
        ThreadForUI.Start();
 
        // ... 매우 큰 작업  ... //
 
        // UI 스레드 종료
        ThreadForUI.Abort();
    }
 
 
    // (스레드를 할당하여) UI 부분 일을 처리한다.
    private void RefreshUI()
    {
        while (true)
        {
            Application.DoEvents();
        }
    }        
cs



위와 같이 간단하게 스레드를 사용하여 UI가 멈추는 경우를 해결했습니다.

간단하지만 도움이 되셨기를 바랍니다. 

감사합니다.

'개발 > C#' 카테고리의 다른 글

C#, 스레드 메소드로부터 리턴 값 받아오기  (0) 2017.02.24

+ Recent posts