C# Programmstop (lagg) verhindern oder mit Loadingscreen tarnen?

...komplette Frage anzeigen

2 Antworten

Ja, das Eröffnen einer Verbindung zu einem SMTP-Server kostet etwas Zeit. Um das Performance-Problem auszulagern, gibt es aber mehrere mögliche Alternativen:

  • Asynchrones Senden (https://msdn.microsoft.com/de-de/library/x5x13z6h(v=vs.110).aspx)
  • Senden der Nachricht via Thread
  • Eine Queue. Bspw. könnten neue Nachrichten erst einmal nur in einem Ordner zwischengespeichert und später verschickt werden. Ist im Prinzip auch asynchron.
Antwort bewerten Vielen Dank für Deine Bewertung

Erledige das doch in einem neuen Thread. Man sollte solche Sachen so oder so nicht im GUI Thread machen eben weil die ganze Oberfläche sonst stehen bleibt bis es fertig ist.

Thread emailThread = new Thread(new ThreadStart(SendEmail));
emailThread.Start();

public void SendEmail(){
// email versenden
}
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von X2ToP
09.10.2016, 14:11

Problem gelöst. Danke! :) Kann ich jetzt auch irgendwie abfangen, wann der Vorgang abgeschlossen ist? Einfach am Ende des public voids dann ladescreen beenden und benachrichtigen dass es erfolgreich war oder gibt es da eine andere Methode?

0

Was möchtest Du wissen?