C# 스레드 실시간 모니터링 클래스 1개
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ACON.AIAV3.Common
{
public class AutomateThread
{
public static Thread StartNew(ThreadStart start)
{
Thread t = new Thread(start);
t.Start();
return t;
}
public static Result Monitor(int nTimeOutMS, ThreadStart start)
{
Stopwatch sw = Stopwatch.StartNew();
Thread t = AutomateThread.StartNew(() => { start(); });
while (sw.ElapsedMilliseconds < nTimeOutMS)
{
if (!t.IsAlive)
{
return new Result(true, false);
}
else
{
Thread.Sleep(30);
}
}
return new Result(false, true);
}
public static Result MonitorAll(int nTimeOutMS, params ThreadStart[] threadStart)
{
Stopwatch sw = Stopwatch.StartNew();
IList<Thread> threads = new List<Thread>();
bool bFinish;
foreach (var item in threadStart)
{
var t = AutomateThread.StartNew(item);
threads.Add(t);
}
while (sw.ElapsedMilliseconds <= nTimeOutMS)
{
bFinish = true;
foreach (var item in threads)
{
if (item.IsAlive)
{
Thread.Sleep(30);
bFinish = false;
}
}
if (bFinish)
{
return new Result(true, false);
}
}
return new Result(false, true);
}
public static void WaitAll(params Thread[] threads)
{
Stopwatch sw = Stopwatch.StartNew();
foreach(Thread t in threads)
{
while(t != null && t.IsAlive)
{
Thread.Sleep(30);
}
}
}
}
}
코드가 비교적 간단하기 때문에 설명을 하지 않겠다.알 수 없는 부분은 메시지를 남겨도 됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.