2012-08-07 2 views
0

일정 기간 후에 메서드를 반복적으로 호출하는 Windows Form 응용 프로그램이 있습니다. 그래서 나는 CPU 사용에 대해 우려하고있다. 나는 두 가지 방법을 알고 : 하나 더 루프 그래서특수한 시간에 메서드를 실행하는 더 좋은 방법은 무엇입니까?

Thread.Sleep(time)를 호출 타이머 구성 요소
2) 사용

1)? CPU를 덜 사용하거나 사용하지 않는 것은 어느 것입니까?

+0

시도해보고 알아보십시오. –

+0

WinForms? WPF? 당신이 이미 시도한 것에 대한 자세한 내용이 더 좋을수록 ... 이것은 매우 건설적인 질문이 아닙니다. 그들은 둘 다 당신을 위해 일할 것이고, 당신은 쉽게 google 할 수있는 오래된 기술 (또는 [여기에 SO 검색] (http : // stackoverflow) 할 수있는 모든 장단점을 나열하는 사람을 얻지 못할 것입니다. co.kr/questions/6265789/thread-vs-timer-in-c-sharp)) 자신을 알아보십시오. –

+0

가능한 복제본 [C# Timer 또는 Thread.Sleep] (http://stackoverflow.com/questions/1091710/c-sharp-timer-or-thread-sleep) – gkaran89

답변

1

루프를 1ms로 설정해도 CPU 사용량을 실제로 측정 할 수 없기 때문에 중요하지 않습니다. 그것은 그렇게 낮을 것이다.

신뢰성, 유지 보수성 및 가독성을 이유로 System.Windows.Forms.Timer을 사용해야합니다.

1

특정 시간대마다 주기적으로 특정 코드 블록을 실행하려면 해당 타이머를 사용하십시오. 약간의 CPU 아키텍처 지식은 정확한 시간 지연을 생성하는 프로세서 나 OS 리소스를 소비하지 않는 범용 타이머가 있음을 보여줍니다.

반면에 일시 중단 상태의 스레드를 유지 관리하고 실행 대기열로 대기열에 대기열을 넣으면 CPU 및 OS 자원이 소모됩니다.

관련 문제