728x90
728x170
▶ Program.cs
using System;
using System.Threading;
using System.Threading.Tasks;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
public class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 작업 1 실행하기 - ExecuteJob1()
/// <summary>
/// 작업 1 실행하기
/// </summary>
private static void ExecuteJob1()
{
Thread.Sleep(20000);
Console.WriteLine("JOB #1 EXECUTED");
}
#endregion
#region 작업 2 실행하기 - ExecuteJob2()
/// <summary>
/// 작업 2 실행하기
/// </summary>
private static void ExecuteJob2()
{
Thread.Sleep(20000);
Console.WriteLine("JOB #2 EXECUTED");
}
#endregion
#region 작업 3 실행하기 - ExecuteJob3()
/// <summary>
/// 작업 3 실행하기
/// </summary>
private static void ExecuteJob3()
{
Console.WriteLine("JOB #3 EXECUTED");
}
#endregion
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
Task task = Task.Run
(
() =>
{
Parallel.Invoke
(
() => ExecuteJob1(),
() => ExecuteJob2()
);
}
);
try
{
bool isTaskCompleted = task.Wait(10000);
Console.WriteLine($"태스크 완료 여부 : {isTaskCompleted}");
Console.WriteLine($"태스크 상태 : {task.Status:G}");
}
catch(OperationCanceledException exception)
{
Console.WriteLine(exception.ToString());
}
ExecuteJob3();
Console.WriteLine("프로그램을 종료하기 위해 아무 키나 눌러 주시기 바랍니다.");
Console.ReadKey(false);
}
#endregion
}
}
728x90
그리드형(광고전용)
'C# > TPL' 카테고리의 다른 글
[C#/TPL] Task 클래스 : FromResult 정적 메소드를 사용해 완료된 작업 만들기 (0) | 2022.07.23 |
---|---|
[C#/TPL] Task 클래스 : CompletedTask 정적 속성을 사용해 완료된 작업 만들기 (0) | 2022.07.23 |
[C#/TPL/.NET6] Task 클래스 : WhenAll 정적 메소드를 사용해 모든 태스크 작업 완료 대기하기 (0) | 2022.07.22 |
[C#/TPL/.NET6] Parallel 클래스 : ForEach 정적 메소드를 Task 클래스 Start 메소드에서 사용하기 (0) | 2022.07.22 |
[C#/TPL] Task 클래스 : 반복 작업자 사용하기 (기능 개선) (0) | 2021.09.05 |
[C#/TPL/.NET5] Task 클래스 : WhenAny 정적 메소드 사용하기 (0) | 2021.08.18 |
[C#/TPL/.NET5] CancellationTokenSource 클래스 : CancelAfter 메소드를 사용해 타임아웃시 작업 취소하기 (0) | 2021.08.18 |
[C#/TPL/.NET5] Parallel 클래스 : Invoke 정적 메소드를 사용해 병렬 작업 실행하기 (0) | 2021.08.16 |
[C#/TPL/.NET5] Parallel 클래스 : ForEach 정적 메소드를 사용해 합계 구하기 (0) | 2021.08.16 |
[C#/TPL/.NET5] Parallel 클래스 : ForEach 정적 메소드에서 CancellationToken 객체를 사용해 취소하기 (0) | 2021.08.15 |