SlideShare a Scribd company logo
2
Most read
6
Most read
9
Most read
C# 기초강좌
멀티쓰레드(Thread) 작성법
STA, MTA
탑크리에듀(http://www.topcredu.co.kr), 이종철
실습코드 및 동영상 다시 보기는 아래 URL에서
가능 합니다.
http://ojc.asia
쓰레드(Thread)
 쓰레드는 하나의 프로세스(실행 중인 프로그램) 내에 존재하는 하나또는 여러 개의 순차적
인 제어의 흐름을 관리하기 위해 사용한다.
 멀티 쓰레드가 제대로 동작하기 위해서는 CPU가 여러 개 있어야 한다. 보통은 단일 CPU
를 사용하게되면 CPU는 한번에 하나의 쓰레드를 사용하므로 멀티 쓰레드로 프로그램이
실행되는 경우에 CPU의 사용 시간을 나누어서 각각의 쓰레드에게 주는 되므로 단일 쓰레
드와 별차이가 없다.
 쓰레드가 생성될 때마다 해당 쓰레드를 위한 Stack Frame이 할당되는데 이를 Thread
Stack이라하며 Thread Stack은 메소드 단위로 분리되어 할당된다.
탑크리에듀(www.topcredu.co.kr), 이종철
C# 멀티쓰레드(Multi-Thread)
 C#에서 멀티 쓰레드를 사용하는 방법은 이미 C#에서 만들어놓은 Thread 클래스와
ThreadStart 델리게이트를 이용하면 된다.
 간단히 C#에서 멀티 쓰레드를 위한 클래스가 어떤 것이 있고 그 사용법은 어떻게 되는가
를 이해하면 된다.
//FirstWork는 쓰레드가 실행하게될 메소드 명이다.
Thread thread1 = new Thread(new ThreadStart(t.FirstWork));
thread1.start();
 C#에서 쓰레드를 위한 클래스들은 System.Threading 네임스페이스 안에 정의 되어 있다.
탑크리에듀(www.topcredu.co.kr), 이종철
C# 멀티쓰레드(Multi-Thread)
 C#에서 멀티 쓰레드를 사용하는 방법은 이미 C#에서 만들어놓은 Thread 클래스와
ThreadStart 델리게이트를 이용하면 된다.
 간단히 C#에서 멀티 쓰레드를 위한 클래스가 어떤 것이 있고 그 사용법은 어떻게 되는가
를 이해하면 된다.
//FirstWork는 쓰레드가 실행하게될 메소드 명이다.
Thread thread1 = new Thread(new ThreadStart(t.FirstWork));
thread1.start();
 C#에서 쓰레드를 위한 클래스들은 System.Threading 네임스페이스 안에 정의 되어 있다.
탑크리에듀(www.topcredu.co.kr), 이종철
쓰레드 동작방식(STA vs MTA)
 STA (single-threaded apartment)와 MTA (multi-threaded apartment)는 COM과 관련된
쓰레드 설정이다.
 STA는 단일 쓰레드로 운영되는 것이며 MTA는 멀티 쓰레드로 운영되는 것이다. C#은 기본적
으로 MTA로 운영되는데 Main 메소드에 STAThread 라고 설정하지 않으면 기본적으로
MTAThread 방식으로 운영된다는 것이다. 설정은 아래처럼 두가지 형태로 가능하다.
[MTAThread]
public static void Main() {
Thread.CurrentThread.ApartmentState = ApartmentState.MTA;
……
 STA를 사용하는 경우는 싱글 쓰레드로만 동작되는 COM 객체를 사용하는 경우인데 드래그 드
랍 기능, 클립보드 관련 기능, OpenDialog, SaveFileDialog, 웹브라우저 컨트롤 등을 사용하
는 경우 STAThread로 동작 되어야 한다.
탑크리에듀(www.topcredu.co.kr), 이종철
간단한 멀티 쓰레드 예제 - 1
using System;
using System.Threading;
public class ThreadTest {
public static int sleepingTime;
public void FirstWork() {
for (int i = 0; i < 10; i++) {
//밀리세컨드 단위로 주어진 기간만큼 쉬었다가 다시 실행됨
Thread.Sleep(sleepingTime);
Console.Write("First{0} ", i);
}
}
public void SecondWork()
{
for (int i = 0; i < 10; i++)
{
Thread.Sleep(sleepingTime);
Console.Write("Second{0} ", i);
}
}
탑크리에듀(www.topcredu.co.kr), 이종철
간단한 멀티 쓰레드 예제 - 2
[MTAThread]
public static void Main() {
ThreadTest.sleepingTime = int.Parse(Console.ReadLine());
ThreadTest t = new ThreadTest();
//Thread는 생성자의 인자로 ThreadStart Delegate를 인자로 받는다.
//ThreadStart Delegate의 인자는 쓰레드가 실행 할 메소드명
Thread first = new Thread(new ThreadStart(t.FirstWork));
Thread second = new Thread(new ThreadStart(t.SecondWork));
first.Start(); second.Start();
}
}
[실행결과]
100
First0 Second0 First1
Second1 Second2 First2
First3 Second3 First4
Second4 First5 Second5
……
탑크리에듀(www.topcredu.co.kr), 이종철
This Practice makes the Expert!
C#,ADO.NET,Network
프로그래밍 기초과정 C#기초, Xamarin 앱 개발과정 Xamarin 앱개발 과정 C# WPF, XAML 프로그래밍

More Related Content

PDF
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
PDF
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
PDF
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
PPTX
Le cloud computing
PDF
Spark SQL - The internal -
PDF
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
PDF
RHEL7/CentOS7 NetworkManager徹底入門
PDF
Ansible-cours .pdf
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Le cloud computing
Spark SQL - The internal -
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
RHEL7/CentOS7 NetworkManager徹底入門
Ansible-cours .pdf

What's hot (20)

PDF
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
PDF
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
PDF
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
PDF
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
PDF
Lustre Best Practices
PDF
Hadoopの概念と基本的知識
PDF
実録Blue-Green Deployment導入記
PPTX
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
PDF
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PDF
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
PPTX
WiredTigerを詳しく説明
PDF
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
PDF
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
PDF
Airflowを広告データのワークフローエンジンとして運用してみた話
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
PDF
[Cloud OnAir] Google Cloud へのデータ移行 2019年1月24日 放送
PPTX
03.Ansible 소개
PDF
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
Lustre Best Practices
Hadoopの概念と基本的知識
実録Blue-Green Deployment導入記
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
アーキテクチャから理解するPostgreSQLのレプリケーション
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
WiredTigerを詳しく説明
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Airflowを広告データのワークフローエンジンとして運用してみた話
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
[Cloud OnAir] Google Cloud へのデータ移行 2019年1月24日 放送
03.Ansible 소개
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
Ad

Viewers also liked (17)

PDF
(C#,닷넷구조체강좌)구조체 개요 및 간단한 예제_닷넷,C#, WPF, 자마린실무교육
PDF
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
PPTX
오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...
PDF
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
PDF
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
PDF
#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
PDF
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
PPTX
(오라클힌트,SQL튜닝강좌#25)오라클WITH구문,서브쿼리 팩토링
PDF
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
PDF
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
PDF
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
PDF
(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
PDF
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
PDF
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
PDF
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
PDF
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
PDF
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
(C#,닷넷구조체강좌)구조체 개요 및 간단한 예제_닷넷,C#, WPF, 자마린실무교육
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
오라클 커서(Cursor) 개념 및 오라클 메모리 구조_PL/SQL,오라클커서강좌,SGA, PGA, UGA, Shared Pool, Sha...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(오라클힌트,SQL튜닝강좌#25)오라클WITH구문,서브쿼리 팩토링
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
Ad

More from 탑크리에듀(구로디지털단지역3번출구 2분거리) (20)

PDF
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
PDF
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
PDF
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
PPTX
[IT교육/IT학원]Develope를 위한 IT실무교육
PPTX
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
PPTX
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
PPTX
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
PPTX
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
PPTX
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
PDF
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
PDF
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
PPTX
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
PPTX
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
PPTX
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
PPTX
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
PDF
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
PPTX
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
PPTX
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
PPTX
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
PPTX
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
[IT교육/IT학원]Develope를 위한 IT실무교육
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]

(C#,멀티쓰레드강좌)쓰레드, STA, MTA개요, 간단한 멀티쓰레드 예제_닷넷,C#,WPF,자마린실무강좌

  • 1. C# 기초강좌 멀티쓰레드(Thread) 작성법 STA, MTA 탑크리에듀(http://www.topcredu.co.kr), 이종철
  • 2. 실습코드 및 동영상 다시 보기는 아래 URL에서 가능 합니다. http://ojc.asia
  • 3. 쓰레드(Thread)  쓰레드는 하나의 프로세스(실행 중인 프로그램) 내에 존재하는 하나또는 여러 개의 순차적 인 제어의 흐름을 관리하기 위해 사용한다.  멀티 쓰레드가 제대로 동작하기 위해서는 CPU가 여러 개 있어야 한다. 보통은 단일 CPU 를 사용하게되면 CPU는 한번에 하나의 쓰레드를 사용하므로 멀티 쓰레드로 프로그램이 실행되는 경우에 CPU의 사용 시간을 나누어서 각각의 쓰레드에게 주는 되므로 단일 쓰레 드와 별차이가 없다.  쓰레드가 생성될 때마다 해당 쓰레드를 위한 Stack Frame이 할당되는데 이를 Thread Stack이라하며 Thread Stack은 메소드 단위로 분리되어 할당된다. 탑크리에듀(www.topcredu.co.kr), 이종철
  • 4. C# 멀티쓰레드(Multi-Thread)  C#에서 멀티 쓰레드를 사용하는 방법은 이미 C#에서 만들어놓은 Thread 클래스와 ThreadStart 델리게이트를 이용하면 된다.  간단히 C#에서 멀티 쓰레드를 위한 클래스가 어떤 것이 있고 그 사용법은 어떻게 되는가 를 이해하면 된다. //FirstWork는 쓰레드가 실행하게될 메소드 명이다. Thread thread1 = new Thread(new ThreadStart(t.FirstWork)); thread1.start();  C#에서 쓰레드를 위한 클래스들은 System.Threading 네임스페이스 안에 정의 되어 있다. 탑크리에듀(www.topcredu.co.kr), 이종철
  • 5. C# 멀티쓰레드(Multi-Thread)  C#에서 멀티 쓰레드를 사용하는 방법은 이미 C#에서 만들어놓은 Thread 클래스와 ThreadStart 델리게이트를 이용하면 된다.  간단히 C#에서 멀티 쓰레드를 위한 클래스가 어떤 것이 있고 그 사용법은 어떻게 되는가 를 이해하면 된다. //FirstWork는 쓰레드가 실행하게될 메소드 명이다. Thread thread1 = new Thread(new ThreadStart(t.FirstWork)); thread1.start();  C#에서 쓰레드를 위한 클래스들은 System.Threading 네임스페이스 안에 정의 되어 있다. 탑크리에듀(www.topcredu.co.kr), 이종철
  • 6. 쓰레드 동작방식(STA vs MTA)  STA (single-threaded apartment)와 MTA (multi-threaded apartment)는 COM과 관련된 쓰레드 설정이다.  STA는 단일 쓰레드로 운영되는 것이며 MTA는 멀티 쓰레드로 운영되는 것이다. C#은 기본적 으로 MTA로 운영되는데 Main 메소드에 STAThread 라고 설정하지 않으면 기본적으로 MTAThread 방식으로 운영된다는 것이다. 설정은 아래처럼 두가지 형태로 가능하다. [MTAThread] public static void Main() { Thread.CurrentThread.ApartmentState = ApartmentState.MTA; ……  STA를 사용하는 경우는 싱글 쓰레드로만 동작되는 COM 객체를 사용하는 경우인데 드래그 드 랍 기능, 클립보드 관련 기능, OpenDialog, SaveFileDialog, 웹브라우저 컨트롤 등을 사용하 는 경우 STAThread로 동작 되어야 한다. 탑크리에듀(www.topcredu.co.kr), 이종철
  • 7. 간단한 멀티 쓰레드 예제 - 1 using System; using System.Threading; public class ThreadTest { public static int sleepingTime; public void FirstWork() { for (int i = 0; i < 10; i++) { //밀리세컨드 단위로 주어진 기간만큼 쉬었다가 다시 실행됨 Thread.Sleep(sleepingTime); Console.Write("First{0} ", i); } } public void SecondWork() { for (int i = 0; i < 10; i++) { Thread.Sleep(sleepingTime); Console.Write("Second{0} ", i); } } 탑크리에듀(www.topcredu.co.kr), 이종철
  • 8. 간단한 멀티 쓰레드 예제 - 2 [MTAThread] public static void Main() { ThreadTest.sleepingTime = int.Parse(Console.ReadLine()); ThreadTest t = new ThreadTest(); //Thread는 생성자의 인자로 ThreadStart Delegate를 인자로 받는다. //ThreadStart Delegate의 인자는 쓰레드가 실행 할 메소드명 Thread first = new Thread(new ThreadStart(t.FirstWork)); Thread second = new Thread(new ThreadStart(t.SecondWork)); first.Start(); second.Start(); } } [실행결과] 100 First0 Second0 First1 Second1 Second2 First2 First3 Second3 First4 Second4 First5 Second5 …… 탑크리에듀(www.topcredu.co.kr), 이종철
  • 9. This Practice makes the Expert! C#,ADO.NET,Network 프로그래밍 기초과정 C#기초, Xamarin 앱 개발과정 Xamarin 앱개발 과정 C# WPF, XAML 프로그래밍