2010-11-08 11 views
1

Dans .Net 4, la récupération de place est améliorée, ce qui est important pour nos systèmes.Qu'est-ce qui détermine la version .Net utilisée pour Garbage Collection?

Si j'ai un projet .NET 4 Winforms qui fait référence aux bibliothèques de classes .Net 2/.Net3.5 quelle version de .Net est utilisée pour Garbage Collection? Je souhaite que le GC .Net 4 fonctionne et donc si les fichiers de projet (* .csproj) doivent être changés pour utiliser .Net 4 pour que le GC .Net 4 fonctionne, ainsi soit-il.

Merci

+0

Il est * très * peu probable que vous remarquiez une amélioration dans un projet Winforms. Les documents pour la nouvelle collection d'arrière-plan, qui remplace la collection simultanée, sont disponibles ici: http://msdn.microsoft.com/fr-fr/library/ee787088.aspx#background_garbage_collection –

+0

Je suis d'accord, mais mon projet winforms consomme plusieurs assemblys qui utilisent plusieurs threads. recherches de dictionnaire ainsi que d'autres traitements critiques en temps réel – Jon

Répondre

2

Le CPG utilisé sera le CLR en cours d'exécution. Si vous utilisez .net 4 CLR pour votre exécutable, les objets 2.0 s'exécuteront dans le CLR 4.0, sauf s'ils ne sont plus opérationnels.

Si vous avez un fichier .exe construit pour CLR2, il utilisera toujours CLR2 par défaut. Pour forcer un .net 2.0 CLR exe à s'exécuter sur le CLR 4.0, utilisez ce qui suit dans le fichier de configuration.

<configuration> 

    <startup> 

    <supportedRuntime version="v4.0"/> 

    </startup> 

</configuration> 
+0

Juste pour confirmer. Si mon fichier * .exe utilise v4 alors les références v2 seront exécutées dans le CLR v4 et profiteront donc de la meilleure Garbage Collection. – Jon

+0

Dans l'app.config des anciens assemblys? – Jon

+0

J'ai édité la question, mais oui l'exécutable sera CLR 4. –