Newbie-Frage zu Forms

arkel

Grünschnabel
Hallo zusammen,

ich habe vor ca. 3 Jahren mit VS2003 eine Applikation geschrieben.Ich bin php-Coder, die .net-Applikation brauchte ich aber um damit einen Upload für einen Kunden zu ermöglichen, was auch soweit gut lief. Da ich das noch ein wenig pimpen wollte, habe ich mir jetzt vs2005 Express installiert und versuche den Code fehlerloser zu machen. Ein Fehler war, dass der Debugger bei dem Open-File-Dialog mit einer STAThread-Fehlermeldung ausstieg. Das kam, da ich jede Form in meinem Wizzard in einen eigenen Thread gepackt habe:

Code:
private void button_continue_Click(object sender, System.EventArgs e)
{
        Thread thread = new Thread (new ThreadStart(startNextForm));
	thread.Start();
	this.Dispose();
	GC.Collect();
}
private void startNextForm()
{
	Application.Run(new Form3_login());
}

Ich habe gelesen, dass ich das tunlichst nicht machen soll und habe mir die folgende Funktion zusammengesucht:
Code:
private void button_continue_Click(object sender, System.EventArgs e)
{
        Form form3 = new Form3();
        form3.Show();
        this.Hide();
}

Dazu habe ich 3 Fragen:
1. Ist das soweit ok?
2. Fehlt mir jetzt nicht der Garbage-Collector?
3. Die nächste Form wird mir einer recht langen Verzögerung aufgerufen (ca. 2 Sek. das sieht so aus, als ob der Code abgestürzt wäre :() - wie kann ich das beschleunigen?

Viele Grüße,
Manu
 
Zuletzt bearbeitet:
Den GC brauchst du nicht, der läuft ohnehin automatisch im Hintergrund und tut seinen Dienst, ohne dass du ihn speziell darauf hinweisen musst. Ein GC.Collect benötigst du nur, wenn du einen FullCollect des Garbage Collectors erzwingen willst, aber hier rate ich dir wenn, dich bezüglich des GCs schlau zu machen (wie er arbeitet etc.).

Warum deine Form 2 Sekunden zum Laden braucht kann ich dir nicht sagen, da ich nicht weiß, was im Konstruktor bzw. in der Form_Load alles ausgeführt wird. Da müsstest du anhand deines Codes zeigen ..
 
Hallo Norbert,

danke für Deine Antwort...ja, ich war etwas vorschnell, in der 2ten Form wird die Internetverbindung überprüft, das dauert seltsamerweise hier auf den Entwicklungsumgebung etwas. Sonst bin ich ja hoch erfreut, ich kann wieder bis zum Ende debuggen ;)

Gruß,
Manu
 
Zurück