Hallo,
jensw hat geschrieben:[100% CPU-Last]
Vollkommen klar, die Messageqeue wird ja auch gnadenlos zugeballert. Man könnte jetzt noch ein Sleep() einfügen...
Aber vergessen wir den Mist besser.
jensw hat geschrieben:
Die Thread-Lösung funktioniert nach der Korrektur (workerThread.Start();) jetzt auch, Mediaport startet, dafür schmiert die HomeServerConsole selbst ab --> wenn man remote an der HomeServer-Konsole angemeldet ist startet Mediaport und im Hintergrund wird's durch die abgestürzte Konsole schön aufgeräumt
die Konsole sollte eigentlich nicht abstürzen, ich habe das mal gestestet. Bei mir funktioniert das ca. so:
Code: Alles auswählen
private void DoWork(object sender, DoWorkEventArgs e)
{
// Hier wird garbeitet.
BackgroundWorker worker = sender as BackgroundWorker;
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "regedit.exe";
try
{
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
e.Result = exeProcess.ExitCode;
}
}
catch
{
// Fehlerbehandlung!
}
}
private void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// Hier kann der Rückgabewert ausgewertet werden...
switch ((int)e.Result)
{
default: break;
}
}
private void qButton1_Click(object sender, EventArgs e)
{
// Hier wird der Thread gestartet.
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(DoWork);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(RunWorkerCompleted);
bw.RunWorkerAsync();
}
großteils direkt aus Doku übernommen, funktioniert problemlos.
Ich hoffe das hilft dir ein bisschen weiter.
cu,
Bernd