Sí, el tamaño de la rosca de inicio está determinado por un valor en el encabezado del archivo .EXE. Necesariamente, es el SO el que crea el hilo, antes de, se puede ejecutar cualquier código en el programa. Llama al punto de entrada del programa, CorExeMain().
El compilador utiliza conseguido escribe ese valor en la cabecera del archivo EXE. Los compiladores .NET actuales seleccionan 1 MB cuando apuntas x86 o Cualquier CPU, 4 MB cuando apuntas a x64. Sin embargo, esto no es fijo, puede modificar el valor con la utilidad Editbin.exe,/opción de línea de comando STACK. Se podría utilizar este evento posterior a la generación de obtener una pila de 2 MB:
set path=%path%;$(DevEnvDir);$(DevEnvDir)..\..\vc\bin
editbin.exe /STACK:2097152 "$(TargetPath)"
El tamaño de la pila de subprocesos que se crean a sí mismo están bajo su control, el constructor de la clase Thread has overloads que le permite especificar el tamaño. No puede hacerlo demasiado pequeño, si recorta el valor a 256 KB. Eso es necesario, el compilador just-in-time también usa la pila.
relacionados: http://stackoverflow.com/questions/1042345/how-do-you-change-default-stack-size-for-managed-executable-net –