Question

Je suis un problème avec un Delphi Pro 6 application que j'ai écrit sur ma machine Windows XP quand il fonctionne sur Windows 7. Je n'ai pas Windows 7 pour tester encore et je suis en train de voir si Windows 7 pourrait être la source du problème. Y at-il une différence fondamentale entre la façon dont les discussions poignées de Windows 7 par rapport à Windows XP? Je vois les choses se passent hors de l'ordre dans mes journaux d'erreur sur Windows 7 et il est à l'origine des problèmes. Par exemple, les objets qui auraient dû être initialisé sont en cours d'exécution sur non initialisé lorsque Windows 7, mais ces objets sont initialisés sous Windows XP au moment où ils sont nécessaires.

Quelques questions:

1) Y a-t-il des différences fondamentales qui pourraient faire en sorte fils / processus à se comporter différemment entre les deux versions du système d'exploitation?

2) Je sais que la question suivante peut sembler absurde, mais ne tente Windows 7 fils split / fourche qui ne sont pas diviser / fourchue sous Windows XP?

3) Enfin, y at-il des problèmes connus avec FPU la manipulation qui peut causer des programmes XP difficulté lorsqu'il est exécuté sur Windows 7 en raison des différences opérationnelles dans l'état d'attente manipulation ou registre de stockage, ou peut-être quelque chose comme exception paramètres du masque, etc?

4) Les 32 bits par rapport à des problèmes 64 bits qui pourraient être créer des troubles ici?

5) J'utilise plusieurs threads, mais les fils de fond sont entièrement protégés par des sections critiques. Toute différence ici que je préoccuper?

- roschler

Était-ce utile?

La solution

Depuis Windows XP, Microsoft a changé la façon dont les verrous sont libérés afin qu'ils ne transition pas nécessairement au prochain thread d'attente dans l'ordre FIFO. Il est possible que ce changement aurait pu révéler une condition de course dans votre code qui ne se présente pas sous XP.

Quelques détails peuvent être trouvés dans le blog de Joe Duffy ici: serrures anti-convoi dans Windows Server 2003 SP1 et Windows Vista

(Malheureusement, je ne pouvais pas déterrer un article de MS-hébergés réelle - il semble que ce devrait être mentionné dans une sorte de KB article ou quelque chose)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top