FIX: .NET Framework 1.1 SP1에서 .NET Framework 기반 응용 프로그램이 System.Threading.Timer 클래스를 사용할 때 타이머 이벤트가 신호를 받지 못할 수 있다

기술 자료 번역 기술 자료 번역
기술 자료: 900822 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

현상

Microsoft .NET Framework 1.1 서비스 팩 1(SP1)에서 관리되는 Microsoft .NET Framework 응용 프로그램이 System.Threading.Timer 클래스를 사용할 때 타이머 이벤트가 신호를 받지 못할 수 있습니다. 일반적으로 이 문제는 Microsoft .NET Framework 기반 응용 프로그램을 실행 중인 컴퓨터의 부하가 높거나 여러 타이머 개체가 실행 중인 경우에 발생합니다.

해결 방법

현재 지원되는 소프트웨어 업데이트를 Microsoft에서 구할 수 있지만 이 문서에서 설명하는 문제를 해결하기 위한 것일 뿐이므로 이러한 특정 문제가 발생하는 시스템에만 이 소프트웨어 업데이트를 적용해야 합니다. 이 소프트웨어 업데이트는 나중에 추가 테스트를 받아야 할 수도 있습니다. 따라서 이 문제의 영향이 심각하지 않으면 이 소프트웨어 업데이트가 포함된 다음 .NET Framework 1.1 서비스 팩이 나올 때까지 기다리는 것이 좋습니다.

이 문제를 즉시 해결하려면 Microsoft 고객기술지원부에 문의하여 이 소프트웨어 업데이트를 구하십시오. Microsoft 고객기술지원부 전화 번호의 전체 목록과 지원 비용에 대한 정보를 보려면 다음 Microsoft 웹 사이트를 방문하십시오.
기술지원 서비스 안내
참고?특정 업데이트로 문제를 해결할 수 있다고 Microsoft 기술지원 전문가가 판단할 경우 지원 요청에 따른 일반적 비용이 취소될 수도 있습니다. 특정 업데이트가 필요하지 않은 추가 지원 질문과 문제에는 일반 지원 비용이 적용됩니다.

전제 조건

Microsoft .NET Framework 1.1 SP1

다시 시작 요구 사항

이 소프트웨어 업데이트를 적용한 후에는 컴퓨터를 다시 시작할 필요가 없습니다.

소프트웨어 업데이트 대체 정보

이 소프트웨어 업데이트는 다른 소프트웨어 업데이트를 대체하지 않습니다.

파일 정보

이 소프트웨어 업데이트의 영어 버전은 아래와 같거나 그 이상의 파일 특성을 갖습니다. 이 파일의 날짜와 시간은 UTC(Coordinated Universal Time)로 나열되며 파일 정보를 볼 때 로컬 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판날짜 및 시간 도구에서 표준 시간대 탭을 사용하십시오.
표 축소표 확대
날짜시간버전크기파일 이름
2005-06-0905:461.1.4322.23312,138,112Mscorlib.dll
2005-06-0905:4810,908Mscorlib.ldo
2005-06-0905:561.1.4322.23312,519,040Mscorsvr.dll
2005-06-0905:571.1.4322.23312,506,752Mscorwks.dll

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열한 제품에서 이 문제를 확인했습니다.

추가 정보

Timer 클래스는 타이머 개체의 연결 목록으로 구현됩니다. 첫 번째 System.Threading.Timer 개체가 만들어지면 스레드 풀 관리자는 스레드를 시작하여 연결 목록을 처리합니다. 이 연결 목록에는 모든 타이머 개체가 추가됩니다. 연결 목록을 처리하는 스레드는 연결 목록을 순환하고 타이머 이벤트가 현재 클럭 카운트에 대한 신호를 받도록 예정된 시간을 확인합니다.

타이머 개체가 만료되면 스레드는 타이머 이벤트가 신호를 받도록 예정된 시간을 업데이트하기 전에 비동기적으로 콜백 함수를 대기열에 넣습니다. 스레드는 연결 목록에 있는 모든 타이머 개체를 처리한 후 연결 목록이 마지막으로 처리된 시간을 업데이트합니다. 그런 다음 스레드는 시간이 경과된 다음 타이머 개체에 대한 연결 목록을 다시 처리하기 전에 휴면 상태에 있어야 하는 최단 시간을 계산합니다.

경우에 따라 시스템의 작업량이 많거나 연결 목록에 여러 타이머 개체가 포함되어 있으면 전체 연결 목록이 처리되기 전에 우선 순위가 더 높은 스레드에 의해 처리 스레드가 미리 비워질 수 있습니다. 이 경우 타이머 이벤트가 다음에 신호를 받도록 예정된 시간이 연결 목록이 마지막으로 처리된 타임스탬프보다 앞당겨집니다. 따라서 타이머 이벤트가 신호를 받도록 예정된 시간은 이미 지났기 때문에 만료되지 않습니다.

타이머 이벤트가 신호를 받도록 예정된 시간이 이미 지났기 때문에 스레드는 타이머 이벤트가 신호를 받을 때까지 기다려야 하는 시간을 역으로 계산할 수 있습니다. 타이머 이벤트가 신호를 받을 때까지 기다려야 하는 시간을 역으로 계산할 경우 스레드는 오랫동안 휴면 상태로 들어갑니다.
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
824684 Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 900822 - 마지막 검토: 2007년 12월 3일 월요일 - 수정: 2.4
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft .NET Framework 1.1 Service Pack 1
키워드:?
kbbug kbfix kbqfe kbpubtypekc kbhotfixserver KB900822

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com