약간에 문제를 제기하지만. . .
System.Timers.Timer
은 System.Threading.Timer
래퍼이며, 차례로 Windows 'Timer Queues 주위의 .NET 래퍼입니다. 타이머 대기열 타이머는 매우 가볍습니다. 시스템 자원을 거의 사용하지 않습니다. 수천 개의 타이머로 확장하지는 않았지만 수백 개의 타이머가 정상적으로 작동합니다. 구현을 수집 할 수 있었던 것에서부터 수천 명의 타이머에 문제가있을 것이라고 상상할 수 없습니다.
특정 타이머 대기열에있을 수있는 타이머의 수에는 제한이있을 수 있습니다. 나는 그 한계가 무엇인지 모른다. 이 타이머를 1 년 전에 조사했을 때 .NET Framework가 프로세스 당 하나의 타이머 대기열을 만들었거나 (또는 앱 도메인 당 하나의 타이머 대기열을 만들었습니다.) 생성 한 모든 타이머가 하나의 대기열에 들어갑니다.
단일 타이머 및 우선 호출 대기열 메커니즘을 사용하여 다음에 호출되는 것을 제어하는 자체 시스템을 생성하여 타이머 대기열 기능을 복제하는 것이 적절하지 않을 수 있습니다. 그게 바로 타이머 큐가하는 일입니다.
10,000 개의 타이머를 만드는 테스트 프로그램을 쉽게 만들 수있는 것 같습니다. 각 항목을 마지막 이후 1 초 동안 체크하고 해당 기간을 10,000 초로 설정하십시오. 그런 다음 앉아서 진드기를 지켜보십시오. 또는 프로그램에서 다음에 누가 체크하고 다음에 실제로 틱해야 하는지를 추적하게하십시오.
Threading.Timer에 관한 비슷한 질문이 있습니다. – GregC
@GregC, 그 답변을 확인할 수 있도록 링크를 게시 할 수 있습니까? – tster