"Start Thread" 버튼 클릭시 0.5초 간격으로 1부터 순차적으로 숫자를 출력하고
"Stop Thread" 버튼 클릭시 쓰레드를 종료하는 초 간단 C#용 Thread 예제 코드이다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ExSerialRead
{
public partial class Form1 : Form
{
private int cnt = 0;
private Thread rTh;
public Form1()
{
InitializeComponent();
}
private void btnStartThread_Click(object sender, EventArgs e)
{
//Thread 객체 생성. 생성시 이 Thread가 실행할 메소드를 지정해 준다.
//여기서는 Count라는 메소드를 rTh라는 쓰레드가 실행하게 될 것이다.
rTh = new Thread(Count);
rTh.Start();
}
// Thread로 수행할 작업
private void Count()
{
while(true)
{
++cnt;
Thread.Sleep(500);
//Console.WriteLine("crr cnt : " + cnt);
Console.WriteLine("crr cnt is {0} ", cnt);
if (cnt > 200)
{
rTh.Abort(); //쓰레드 강제 종료
Console.WriteLine("Thread 종료. cnt : " + cnt);
break;
}
}
}
private void btnStopThread_Click(object sender, EventArgs e)
{
rTh.Abort(); //쓰레드 강제 종료
Console.WriteLine("Thread 종료~");
}
}
}
'Visual C#' 카테고리의 다른 글
C#의 델리게이트(delegate)에 대한 기본적인 개념 및 간단한 예제 (0) | 2017.12.19 |
---|---|
C# 프로그램을 .dll Library로 만들기(C++에서 사용하기 위해) (0) | 2017.12.07 |
Visual Studio 2017에서 작업을 완료할수 없습니다. 해당 인터페이스를 지원하지 않습니다 (0) | 2017.12.06 |
C# 그래픽 작업시 화면 깜빡임을 없애주는 double buffering에 대해 (0) | 2016.09.06 |
C# 새로운 Project 열때 template이 다 나타나지 않는 문제 (0) | 2016.09.05 |