Ist das Hauptfenster Ihrer Anwendung nicht geöffnet, bleibt sie dennoch aktiv, solange Sie es als sekundären Thread gestartet haben und IsBackground == false
ist. Normalerweise ziehe ich es vor, solche Sachen über den SQL Server Agenten oder als Client-Server-Anwendung zu erledigen (nichts hindert daran, dass eine Client-Server-Anwendung sowohl auf demselben Rechner läuft oder sogar dieselbe Binärdatei ist).
Es ist schon eine Weile her...
using System.Threading;
.....
Thread _t = null;
void StartProcedure()
{
_t = new Thread(new ThreadStart(this.StartProc));
_t.IsBackground = false; // Wenn ich mich richtig erinnere, ist das der Standardwert.
_t.Start();
}
bool ProcedureIsRunning
{
get { return _t.IsRunning; } // Vielleicht ist es IsActive. Ich kann mich nicht erinnern.
}
void StartProc(object param)
{
// Ihre Logik hier... Sie könnten dies auch als anonyme Methode tun. Ich habe es vereinfacht, um es übersichtlich zu halten.
}
0 Stimmen
Nun, ich werde mich nicht einloggen oder registrieren (etwas enttäuscht, dass ich nicht abstimmen oder dies ohne dies schließen kann). Jedenfalls hat Scott W. die beste Antwort gegeben und wurde dann von einigen unterstützenden Beiträgen unterstützt. Alle außer dem "...schnellere Hardware kaufen" Teil. Ich würde lieber ein Versagen zugeben, als meinem Kunden sagen, dass sie schnellere Hardware kaufen müssen, weil ich es nicht richtig machen kann. Vielen Dank für all deine Hilfe!
2 Stimmen
@Dan - Ich bin verwirrt. Du bist bereits angemeldet, zumindest genug, um ein Benutzerkonto und 2 Abzeichen zu haben. Warum kannst du nicht auf die Schaltfläche "Antwort akzeptieren" klicken?
0 Stimmen
Siehe auch ... stackoverflow.com/questions/7444215/…