728x90
반응형
728x170
▶ TimeCounter.cs
using System;
using System.Threading;
namespace TestProject
{
/// <summary>
/// 시간 계수기
/// </summary>
public class TimeCounter
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region Field
/// <summary>
/// 인스턴스
/// </summary>
public static TimeCounter Instance => _instanceLazy.Value;
#endregion
//////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 인스턴스 LAZY
/// </summary>
private static readonly Lazy<TimeCounter> _instanceLazy = new Lazy<TimeCounter>(() => new TimeCounter());
#endregion
////////////////////////////////////////////////////////////////////////////////////////// Instance
//////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 실행 여부
/// </summary>
private bool isRunning = false;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 현재 시간 - CurrentTime
/// <summary>
/// 현재 시간
/// </summary>
public DateTime CurrentTime { get; private set; } = DateTime.Now;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 생성자 - TimeCounter()
/// <summary>
/// 생성자
/// </summary>
private TimeCounter()
{
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 시작하기 - Start()
/// <summary>
/// 시작하기
/// </summary>
public void Start()
{
this.isRunning = true;
new Thread(new ThreadStart(ProcessThread)).Start();
}
#endregion
#region 중단하기 - Stop()
/// <summary>
/// 중단하기
/// </summary>
public void Stop()
{
this.isRunning = false;
}
#endregion
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 스레드 처리하기 - ProcessThread()
/// <summary>
/// 스레드 처리하기
/// </summary>
private void ProcessThread()
{
CurrentTime = DateTime.Now;
while(this.isRunning)
{
CurrentTime = CurrentTime.AddSeconds(0.1);
Thread.Sleep(100);
}
}
#endregion
}
}
728x90
▶ Program.cs
using System;
using System.Threading;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
TimeCounter.Instance.Start();
for(int i = 0; i < 10; i++)
{
Console.WriteLine(TimeCounter.Instance.CurrentTime);
Thread.Sleep(300);
}
TimeCounter.Instance.Stop();
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] Process 클래스 : UWP 프로세스 여부 구하기 (0) | 2021.05.13 |
---|---|
[C#/COMMON] 스푸핑(spoofing) 기법을 사용해 시스템 권한으로 프로세스 실행하기 (0) | 2021.05.12 |
[C#/COMMON] 윈도우즈 서비스에서 시스템 권한으로 프로세스 실행하기 (0) | 2021.05.12 |
[C#/COMMON] Process 클래스 : Kill 메소드를 사용해 특정 디렉토리 내 프로세스 죽이기 (0) | 2021.05.11 |
[C#/COMMON] Process 클래스 : 메인 모듈 파일 경로 구하기 (0) | 2021.05.11 |
[C#/COMMON] 도메인명/사용자명 구하기 (0) | 2021.05.11 |
[C#/COMMON] UWP 앱 실행하기 (0) | 2021.05.10 |
[C#/COMMON] Process 클래스 : UWP 앱 실행하기 (0) | 2021.05.10 |
[C#/COMMON] 체질량 지수(Body Mass Index) 구하기 (0) | 2021.05.01 |
[C#/COMMON] 누겟 설치 : Obfuscar (0) | 2021.05.01 |
댓글을 달아 주세요