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]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

/// <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!