Stopwatch 를 이용한 Timeout 기능 구현 - C#
Software/C#2023. 8. 23. 23:03
반응형
특정 함수를 구현함에 있어 함수에서의 작업이 언제 끝날지 알수 없는 작업을 구현할 경우 무한루프를 사용하게 됩니다.,
무한루프 안에서 특정 작업이 마무리 되면 break 로 빠져 나오겠지만 어떠한 문제로 인해 작업이 진행되지 않고 계속 무한루프를 돌게 되는 경우가 았습니다. 이런경우 Timeout 기능을 넣어서 일정시간이 지나도 작업이 끝나지 않을경우 무한루프를 빠져 나오도록 프로그램을 구현합니다.
Timeout 기능은 여러 방법이 있지만 이번 포스팅에서는 Stopwatch 객체를 이용해서 구현해 보았습니다.
public int WorkFunction(int TimeOut)
{
int result = 0 ;
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); // stopwatch 객체 생성
sw.Start() ; // stopwatch 시작
try
{
while(true)
{
// workflow 구현
var time = (int)(sw.ElapsedMilliseconds / 1000);
if (time >= TimeOut) // Timeout 시간 경과
{
result = -1;
break;
}
}
}
finally
{
sw.Stop() ; // stopwatch 종료
}
return result ;
}
반응형
'Software > C#' 카테고리의 다른 글
설정값 저장을 위한 ini 파일 과 yaml 파일 사용방법 - C# (0) | 2023.11.29 |
---|---|
Tag 속성을 이용하여 RadioButton 사용 코딩 줄이기 #2 - C# (0) | 2023.08.29 |
OpenCVSharp 카메라 제어 #5 ( Auto Focusing ) (0) | 2023.07.27 |
Tag 속성을 이용하여 RadioButton 사용 코딩 줄이기 #1 - C# (0) | 2023.04.25 |
시리얼 통신에서의 async await 사용 - C# (0) | 2023.03.28 |
댓글()