Sì, il formato per il filo di avvio è determinato da un valore nell'intestazione del file exe. Necessariamente così, è il sistema operativo che crea il thread, prima di qualsiasi codice nel programma può essere eseguito. Chiama il punto di accesso del programma, CorExeMain().
Il compilatore gestito che si utilizza scrive quel valore nell'intestazione del file EXE. I compilatori .NET correnti selezionano 1 MB quando si seleziona x86 o Qualsiasi CPU, 4 MB quando si seleziona x64. Questo tuttavia non è fisso, è possibile modificare il valore con l'utilità Editbin.exe, l'opzione della riga di comando/STACK. Si potrebbe utilizzare questo evento post-generazione per ottenere una pila 2MB:
set path=%path%;$(DevEnvDir);$(DevEnvDir)..\..\vc\bin
editbin.exe /STACK:2097152 "$(TargetPath)"
La dimensione dello stack per le discussioni che si creano da soli sono sotto il vostro controllo, il costruttore della classe Thread has overloads che consente di specificare le dimensioni. Non è possibile renderlo troppo piccolo, se ritaglia il valore su 256 KB. È necessario, anche il compilatore just-in-time utilizza lo stack.
fonte
2010-11-03 16:22:15
correlati: http://stackoverflow.com/questions/1042345/how-do-you-change-default-stack-size-for-managed-executable-net –