2010-12-22 3 views
1

Windows 7 컴퓨터에서 작성한 Delphi Pro 6 응용 프로그램에 문제가 있습니다. Windows 7이 실행되지 않습니다. 테스트가 아직 이루어지지 않았고 Windows 7이 문제의 원인이 될지 궁금합니다. Windows 7이 Windows XP에 비해 스레드를 처리하는 방식에는 근본적인 차이점이 있습니까? Windows 7의 오류 로그에서 문제가 발생하고 있습니다. 문제가 발생합니다. 예를 들어, 초기화해야 할 개체는 Windows 7에서 실행 중일 때 초기화되지 않지만 Windows XP에서는 필요할 때까지 개체가 초기화됩니다.Windows 7 대 Windows XP 멀티 스레드 - Delphi 앱이 제대로 작동하지 않습니다.

몇 가지 질문 :

1) 스레드/프로세스가 두 운영 체제 버전에 따라 다르게 동작시킬 수있는 핵심적인 차이가 있습니까?

2)이 다음 질문은 터무니없는 것처럼 보일 수 있지만 Windows XP에서는 Windows 7에서 스플릿/포크 스레드가 분리/분기되지 않습니다.

3) 마지막으로 대기 상태 처리 또는 레지스터 저장소의 작동 차이 또는 예외 마스크 설정 등과 같은 Windows 7에서 실행될 때 XP 프로그램 문제를 일으킬 수있는 FPU 처리 관련 알려진 문제가 있습니까?

4) 여기에 문제가 될 수있는 32 비트 대 64 비트 문제 4)

5) 여러 스레드를 사용하지만 배경 스레드는 중요 섹션별로 완전히 보호됩니다. 내가 여기서 염려해야 할 차이점은 무엇입니까?

- roschler 윈도우 XP 이후

답변

1

는, Microsoft는 반드시 FIFO 순서의 다음 대기중인 스레드로 전환하지 않도록 해제하는 방법을 잠금 변경되었습니다. 이 변경으로 인해 XP에서 나타나지 않은 코드의 경쟁 조건이 밝혀 졌을 가능성이 있습니다.

일부 세부 사항

여기 조 더피의 블로그에서 확인할 수 있습니다 Anti-convoy locks in Windows Server 2003 SP1 and Windows Vista

(불행하게도, 나는 실제 MS-호스팅 기사를 발굴 할 수 없습니다 - 그것은이이 KB 기사 또는 무언가의 일종에 언급되어야한다 보인다)

관련 문제