[C#/COMMON] ThreadPool 클래스 : QueueUserWorkItem 정적 메소드를 사용해 스레드 풀의 스레드 실행하기
C#/Common 2019. 11. 22. 23:59728x90
반응형
728x170
▶ Program.cs
using System;
using System.Threading;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 작업 처리하기 - ProcessJob(state)
/// <summary>
/// 작업 처리하기
/// </summary>
/// <param name="state">상태</param>
private static void ProcessJob(object state)
{
ManualResetEvent manualResetEvent = state as ManualResetEvent;
try
{
Console.WriteLine("작업 처리를 시작합니다.");
Thread.Sleep(5000);
Console.WriteLine("작업 처리를 종료합니다.");
}
finally
{
manualResetEvent.Set();
}
}
#endregion
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
ManualResetEvent manualResetEvent = new ManualResetEvent(false);
if(ThreadPool.QueueUserWorkItem(ProcessJob, manualResetEvent))
{
manualResetEvent.WaitOne();
Console.WriteLine("프로그램 실행을 종료합니다.");
}
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 간접 재귀를 사용해 홀짝 여부 구하기 (0) | 2019.11.23 |
---|---|
[C#/COMMON] 연속 전달형의 꼬리 재귀를 사용해 팩토리얼 구하기 (0) | 2019.11.23 |
[C#/COMMON] 누적기 전달형의 꼬리 재귀를 사용해 팩토리얼 구하기 (0) | 2019.11.23 |
[C#/COMMON] 비동기 프로그래밍 모델(Asynchronous Programming Model, APM) 사용하기 (0) | 2019.11.23 |
[C#/COMMON] ManualResetEvent 클래스 사용하기 (0) | 2019.11.23 |
[C#/COMMON] Stopwatch 클래스 사용하기 (0) | 2019.11.22 |
[C#/COMMON] 회문(Palindrome) 여부 구하기 (0) | 2019.11.20 |
[C#/COMMON] StreamWriter 클래스 : 콘솔 출력하기 (0) | 2019.11.20 |
[C#/COMMON] IDisposable 헬퍼 사용하기 (0) | 2019.11.19 |
[C#/COMMON] StringBuilder 클래스 : 확장 기능 사용하기 (0) | 2019.11.19 |
댓글을 달아 주세요