Oui, la taille du fil de démarrage est déterminé par une valeur dans l'en-tête de fichier .EXE. Nécessairement, c'est le système d'exploitation qui crée le fil, avant tout code dans le programme peut fonctionner. Il appelle l'entrypoint du programme, CorExeMain().
Le compilateur géré que vous utilisez écrit cette valeur dans l'en-tête du fichier EXE. Les compilateurs .NET actuels sélectionnent 1 Mo lorsque vous ciblez x86 ou Any CPU, 4 Mo lorsque vous ciblez x64. Ceci n'est cependant pas corrigé, vous pouvez modifier la valeur avec l'utilitaire Editbin.exe, option de ligne de commande/STACK. Vous pouvez utiliser cet événement après génération pour obtenir une pile de 2 Mo:
set path=%path%;$(DevEnvDir);$(DevEnvDir)..\..\vc\bin
editbin.exe /STACK:2097152 "$(TargetPath)"
La taille de la pile pour les fils que vous créez sont sous votre contrôle, le constructeur de la classe Thread has overloads qui vous permet de spécifier la taille. Vous ne pouvez pas le rendre trop petit, si les clips la valeur à 256 Ko. C'est nécessaire, le compilateur juste-à-temps utilise également la pile.
en relation: http://stackoverflow.com/questions/1042345/how-do-you-change-default-stack-size-for-managed-executable-net –