Autor Beitrag
georgeboy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 198



BeitragVerfasst: Fr 15.01.21 10:52 
Hallo zusammen, gibt es eine Möglichkeit, die maximale Stapelgrösse vom Haupt-Thread zu erhöhen ? Ich arbeite mit VS 2008 und VS 2019 C# .NET WinForms.

Moderiert von user profile iconTh69: Topic aus WinForms verschoben am Fr 15.01.2021 um 14:06
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Fr 15.01.21 12:30 
Ja, gibt es: How to change stack size for a .NET program?
Man muss wohl editbin nutzen, um die exe nachträglich zu ändern.

Alternativ kannst du deinen rekursiven (?) Code auch Umschreiben und einen Stack<T> nutzen anstatt den Callstack.

Moderiert von user profile iconTh69: URL-Titel hinzugefügt.
Moderiert von user profile iconTh69: C#-Tags hinzugefügt
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 198



BeitragVerfasst: Fr 15.01.21 15:14 
Da stelle ich die Funktion lieber in einen Thread: Thread(new ThreadStart("ThreadMethode"), StackSize);
Stack<T> geht natürlich auch. Danke!

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 15.01.21 18:04 
Mit editbin hättest du auch die Stacksize aller Threads beinflusst. Das eskaliert schnell.
Der Stack ist ja nicht begrenzt um uns Entwickler zu ärgern. Das hat Gründe.
Ein Überlegen ob es auch anders geht, ohne Rekursion bzw. ohne tiefe Rekursion, ist empfehlenswert.
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 198



BeitragVerfasst: Sa 16.01.21 08:03 
Meine Funktion ruft sich mehrfach selber auf:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
funktion( ... )

   for ( ... )
   { 
     ...
     funktion( ... )
     ...
   }

Danke !!!

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 16.01.21 09:16 
user profile icongeorgeboy hat folgendes geschrieben Zum zitierten Posting springen:
Meine Funktion ruft sich mehrfach selber auf:
Dass es um rekursive Aufrufe geht, war klar. Aber die Anzahl dieser rekursiven Aufrufe kann man oft mit einem veränderten Algorithmus verringern.
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 198



BeitragVerfasst: Sa 16.01.21 14:19 
Mit Memoisation ? Wenn nicht, dann würde mich das interessieren.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 16.01.21 17:15 
Das kommt auf den Algorithmus an. Oft kann man den Algorithmus recht einfach modifizieren.

Die Fibonacci-Folge ist ein gutes Beispiel. Da ist der nicht-rekursive Algorithmus genauso einfach wie der rekursive.

Memoisierung ist ein weit gefasster Begriff. Natürlich muss man auch ggf. Variablen zur Zwischenspeicherung verwenden. Das ist aber nicht das, was man mit Memoisierung meint. Da geht es darum, dass man mehrere gleiche Aufrufe vermeidet, indem man die Ergebnisse zwischenspeichert. Das hat mit der Umwandlung einer rekursiven Funktion in eine nicht-rekursive wenig zu tun.
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 198



BeitragVerfasst: So 17.01.21 08:26 
Danke Dir !!!