Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1562 | Anzahl registrierter User: 1893 | Besucher online: 58
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Alle hängenden Prozesse beenden


Autor: Tobias Lindner
Sprache: C#
Bewertung:
8.56 (2 votes)
Anzahl der Aufrufe: 9357
  
Kick it on dotnet-kicks.de  

Beschreibung:

Die folgende Funktion beendet alle Prozesse, die nicht mehr reagieren.

benötigte Namespaces:
System.Diagnostics
System.Threading

Funktion wurde geupdatet (siehe Kommentar).


Abgelegt unter: Process, Prozess.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/// <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();
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Volker Steitz schrieb am:  09.12.2007 18:13:20

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.


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.