Feedback

C# - Alle hängenden Prozesse beenden

Veröffentlicht von am 08.12.2007
(2 Bewertungen)
Die folgende Funktion beendet alle Prozesse, die nicht mehr reagieren.

benötigte Namespaces:
System.Diagnostics
System.Threading

Funktion wurde geupdatet (siehe Kommentar).
GFU-Schulungen  [Anzeige]

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

/// <summary>
/// Beendet alle Prozesse, die nicht mehr reagieren.
/// </summary>
/// <returns>
/// Zeichenkette, die angibt, welche Processe beenden wurden
/// und welche nicht beendet werden konnten.
/// </returns>
public static String QuitAllNotRespondingProcesses()
{
    StringBuilder stringBuilder = new StringBuilder();

    foreach (Process process in Process.GetProcesses())
    {
        if (!process.Responding)
        {
            try
            {
                process.PriorityClass = ProcessPriorityClass.Idle;
                Thread.Sleep(1000);
                process.Kill();
                stringBuilder.AppendLine(process.ProcessName + " wurde beendet");
            }
            catch (Exception)
            {
                stringBuilder.AppendLine(process.ProcessName + " konnte nicht beendet werden");
            }
        }
    }
    return stringBuilder.ToString();
}
Abgelegt unter Process, Prozess.

1 Kommentare zum Snippet

Volker Steitz schrieb am 09.12.2007:
Leider ist das nicht so ganz richtig. Hängende Prozesse die in einer hohen Priorität laufen (z.B. Realtime) kann man auf diese Art und weise nicht beenden.
Hierzu muss man zuerst einmal die Priorität herunterstufen - dann kann man die Prozese beenden.

Damit das auch gelingt, muss man allerdings über die entsprechenden Administativen Rechte verfügen.
 

Logge dich ein, um hier zu kommentieren!