C# 강좌 : 제 30강 - 쓰레드 (3)

C# Thread (3)

C# 강좌 : 제 30강 - 쓰레드 (3)
[ C# ] - 윤대희

쓰레드(Thread)


쓰레드를 사용할 때 델리게이트 (delegate)를 이용하여 컨트롤을 비롯하여 사용자 정의 함수를 이용할 수 있습니다.



프로젝트 구성


1

도구상자에서 TextBox를 Form1에 생성하며, MultiLine에 체크합니다.



코드


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;

namespace test
{
    public partial class Form1 : Form
    {
        Thread ThreadA;
        Thread ThreadB;

        delegate void ThreadDelegate_1(string i);

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ThreadA = new Thread(TEST_1);
            ThreadB = new Thread(TEST_2);

            ThreadA.Start();
            ThreadB.Start();
        }

        public void TEST_1()
        {
            for(int i=0; i<100; i++)
            {
                this.Invoke(new ThreadDelegate_1(TEXT), i.ToString());
                Thread.Sleep(50);
                if (i == 50) ThreadA.Suspend();
            }
        }

        public void TEST_2()
        {
            for(int i=0; i< 100; i++)
            {
                Thread.Sleep(50);
            }
            ThreadA.Resume();
        }

        public void TEXT(string i)
        {
            textBox1.Text = i;
        }
    }
}



델리게이트(delegate)


delegate void ThreadDelegate_1(string i);

델리게이트를 선언합니다. 사용될 인수를 포함할 수 있습니다.


this.Invoke(new ThreadDelegate_1(TEXT), i.ToString());

Invokedelegate를 이용하며 델리게이트사용자 정의 함수에서 사용되는 인자의 변수를 동일하게 설정합니다.

this.Invoke(new 선언된델리게이트(사용자 정의 함수), 인수);로 사용할 수 있습니다.



Sleep


Thread.Sleep(ms);을 통하여 밀리세컨드(millisecond) [ms] 동안 쓰레드를 중지할 수 있습니다. (1000 ms = 1s)

  • Tip : 쓰레드의 이름이나 사용자 정의 함수의 이름Thread 선언했을 경우 System.Threading.Thread.Sleep(ms);로 사용하여 Sleep할 수 있습니다.



Suspend


쓰레드이름.Suspend()를 통하여 특정 쓰레드를 일시 중단 시킬 수 있습니다.



Resume


쓰레드이름.Resume()를 통하여 일시 중단된 쓰레드를 다시 시작할 수 있습니다.



Result


2



Book Image

개정판이 출간됐습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍 (개정판)

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post C# 강좌 : 제 29강 - 쓰레드 (2) ⤧  Next post C# 강좌 : 제 31강 - 속성
    C# Category