Prozess schließen ohne Try



  • Servus Leute,

    ich hätte da mal eine Frage.

    Könnte man ein Prozess schließen ohne die Try-Schleife zu benutzen?
    Mit Try wird mein ganzer Prozess langsam und es dauert dann ewig bis er mein ProgressBar auflädt.

    Oder könnte man irgendwie die Try Schleife in der Mitte abbrechen, nachdem er einmal versucht hat?

    So siehst mein Code aus:

    try
                    {
                        System.Diagnostics.Process ffox = System.Diagnostics.Process.GetProcessesByName("firefox")[0];
                    }
    


  • Besser gesagt nicht abbrechen sondern eher ersetzen durch die IF-Schleife, aber wie soll ich dann die If-Anfrage stellen? Wenn was passiert?? 😕

    Bin wirklich am Ende.
    Kann mir jemand helfen?

    Thx im vorraus 🙂


  • Administrator

    http://www.try-schleife.de/ 🙂
    http://www.if-schleife.de/

    Ist womöglich dein gezeigter Quellcode nicht komplett? Wenn du die Try-Anweisung weglässt, wird dies keine Änderung an der Performance hervorrufen oder zumindest nichts, was du irgendwie spüren würdest.

    Daher macht deine Aussage so keinen Sinn.

    Vielleicht einen Tipp: Was willst du überhaupt erreichen?

    Grüssli



  • Naja sagen wir es so, der soll da etwas machen, will meine Idee jetzt net sagen, nur die Try Schleife verlängert alles unheimlich lange und ich will die Try Schleife durch eine "If-Abfrage" ersetzen, damit die Prozedur schneller abläuft und nicht die Geschwindigkeit verlangsamt.

    Ich wollte den FireFox Prozess beenden lassen durch ffox.kill();
    Was eigentlich auch klappt, nur es dauert und dauert, und ich meine, ich will mir kein Bart wachsen lassen 🙂


  • Administrator

    1. Es gibt keine Try-Schleife!
    2. Try verlangsamt den Code nicht! Du kannst ein Try-Catch nicht durch eine If-Anweisung ersetzen, das macht auch überhaupt keinen Sinn. Mit Try-Catch fängst du Exceptions, mit der If-Anweisung prüfst du eine Bedingung. Das sind zwei völlig unterschiedliche Konzepte.
    3. Wir können dir nicht helfen, wenn du a) die Begriffe nicht richtig verwendest und b) uns das Problem nicht genauer erklärst.
    4. Mach halt ein kompilierbares Minimalbeispiel, welches dasselbe Problem hat. Zeig uns zum Beispiel, wie du versuchst den Prozess abzuschiessen und zeig an dem Code auf, was daran langsam sein soll. Dein gezeigert Code oben macht nichts dergleichen und ist nicht mal kompilierbar.

    Grüssli



  • Lol lern erstmal lesen...

    Ich sagte ich will try durch If ersetzen, komplett...
    Und nicht catch. Du müsstest schon in der Schule gelernt haben, wie man den Inhalt eines Textes richtig versteht.

    Ich will nicht wissen, was ich falsch schreibe, sondern ob ich es durch eine If-Schleife ersetzen kann, und mein Dad sagte mir ja, aber er will es mir net zeigen, da ich etwas selbstständiger werden soll...


  • Administrator

    Newbie² schrieb:

    Lol lern erstmal lesen...

    Arroganter geht es nicht mehr? Lern du zuerst mal die C# Sprache!
    http://msdn.microsoft.com/en-us/library/0yd65esw.aspx

    Was du hier hinschreibst, macht hinten und vorne was die C# Sprache angeht keinen Sinn! Du würfelst hier Dinge durcheinander, verwendest falsche Begriffe und legst ein Halbwissen an den Tag, welches phänomenal ist.

    Aber bitte ... Ich bin nicht darauf angewiesen, dir zu helfen. Viel Spass noch.

    Grüssli



  • lol... Ich frage nur ganz nett, und du machst dich doch nur über einen lustig -.-
    ich habe hier was gefragt, ich bin nicht perfekt, ich lerne auch C#, wenn man es net lernt, woher soll man dann mit C# programmieren?
    Meine Bücher helfen mir auch nicht weiter, und ich finde nichts im Internet, da bleibt mir nichts anderes als jemanden zu fragen...

    Und nur mal so, es hat nichts mit Arroganz zu tun, es ist eher ein Problem bei dir.



  • Dein Annahme haben nix mit dein Problem zu tun. Dein Beispiel zeigt kein Problem, und du hast greade einer der besten CSharpler angepisst - Gratulation 🙂



  • @Newbie²
    Das hat mächtig viel mit Arroganz zu tun.

    Einmal gegenüber Menschen, hast du hier schön demonstriert.

    Und dann ganz allgemein gegenüber der Welt. Du hast keine Ahnung von dem was du da tust, glaubst aber trotzdem gewisse Dinge verstanden zu haben. Das führt natürlich dazu dass du zu falschen Annahmen kommst, und weiter dazu dass du die falschen Fragen stellst (bzw. unverständliche/unsinnige Fragen).

    Viel Spass dann noch.



  • Newbie² schrieb:

    Naja sagen wir es so, der soll da etwas machen, will meine Idee jetzt net sagen

    Würde meine Hand dafür ins Feuer legen, dass Deine "Idee" keinerlei Wert hat.

    @Dravere
    Schließe diesen Müllthread doch einfach. Das ist nur arrogantes Getrolle.


  • Administrator

    µ schrieb:

    @Dravere
    Schließe diesen Müllthread doch einfach. Das ist nur arrogantes Getrolle.

    Ich würde den Thread eher wegen den letzten 3 Beiträgen schliessen. Die sind eigentlich am unnötigsten gewesen. "Der aus dem Westen" hat sogar einen Beitrag hier reingeschrieben, den ich entfernt habe.

    Zeus erzählt sogar Unwahrheiten. Einer der besten CSharpler? Also bitte ...

    Ich lasse den Thread noch offen, da ich Newbie² hier nicht als Troll einschätze. Zeigen auch seine bisherigen Postings. Ich denke eher, dass er sich hier ein wenig falsch verhalten hat und gebe ihm daher noch eine Chance. Er kann sich z.B. entschuldigen oder auf jemand anderes hoffen. Um es mit den Worten von Scott Adams zu sagen:

    Scott Adams schrieb:

    People are idiots. Including me. Everyone is an idiot, not just the people with low SAT scores. The only differences among us is that we're idiots about different things at different times. No matter how smart you are, you spend much of your day being an idiot.

    The Dilbert Principle | ISBN: 0887308589

    Grüssli



  • Dravere schrieb:

    Zeus erzählt sogar Unwahrheiten. Einer der besten CSharpler? Also bitte ...

    Danke, hast recht ich sollte wirklich überdenken, was ich von dir halte, wenn du es als Unwahrheit bezeichnest...



  • Nochmal zurück zum Thema... (Auch wenn ich im wesentlichen nur wiederholen kann was andere sagen).

    Newbie² schrieb:

    Könnte man ein Prozess schließen ohne die Try-Schleife zu benutzen?

    Vermutlich ja, aber dann arbeitet dein Programm auch keine Ausnahmen ab (die lassen sich auch nicht durch if-Anweisungen behandeln).

    Newbie² schrieb:

    Mit Try wird mein ganzer Prozess langsam und es dauert dann ewig bis er mein ProgressBar auflädt.

    try/catch wird man in einen realen Projekt (das auch im Releasemodus compiliert wird) nicht wirklich wahrnehmen. Deine Aussage man vielleicht (und auch das wage ich zu bezweifeln) im Debug etwas langsamer, aber auch da mit sicherheit nicht deutlich.

    Newbie² schrieb:

    Oder könnte man irgendwie die Try Schleife in der Mitte abbrechen, nachdem er einmal versucht hat?

    try/catch hat nichts, aber auch gar nichts mit einer Schleife zu tun. Zudem kannst du den try-Block vorzeitig verlassen, beispielsweise wenn du durch ein return die Funktion verlässt.

    Newbie² schrieb:

    So siehst mein Code aus:

    Viel zu wenig um irgendwelche Aussagen zu treffen.



  • Ich denke, der try-catch wurde nur wegen einem möglichen leeren Array hier eingebaut (und der daraus folgenden IndexOutOfRangeException bei Zugriff auf das erste Element):

    Rückgabewerte sollten ja auch immer explizit getestet werden, also

    Process[] ffoxProcesses = Process.GetProcessesByName("firefox");
    if (ffoxProcesses != null)
    {
      Process ffox = ffoxProcesses[0];
      // ...
    }
    

    Und so viel Wind um nichts 😉



  • @Th69
    Ja, denke ich auch. Ich hätte es aber vorgezogen wenn hier keine hilfreiche Antwort gekommen wäre.
    Leuten die so wirr fragen und dann noch unhöflich werden muss man mMn. nicht helfen.

    Th69 schrieb:

    Process[] ffoxProcesses = Process.GetProcessesByName("firefox");
    if (ffoxProcesses != null)
    {
      Process ffox = ffoxProcesses[0];
      // ...
    }
    

    Da fehlt noch der Check ob das Array leer ist...

    if (ffoxProcesses != null && ffoxProcesses.Length > 0)
    

  • Administrator

    Th69 schrieb:

    Und so viel Wind um nichts 😉

    Und was meint er dann mit dem?

    Newbie² schrieb:

    Mit Try wird mein ganzer Prozess langsam und es dauert dann ewig bis er mein ProgressBar auflädt.

    Grüssli



  • Okay es tut mir Leid, vielleicht hab ich mich wirklich wie ein Arsch verhalte, es tut mir Leid...

    Dravere schrieb:

    Und was meint er dann mit dem?

    Newbie² schrieb:

    Mit Try wird mein ganzer Prozess langsam und es dauert dann ewig bis er mein ProgressBar auflädt.

    Grüssli

    Wenn ich Try weglasse, lädt es den ProgressBar schneller als wenn ich mit try arbeite. Da dauert es dann ewig bis es sich auflädt...

    Naja, ich meinem Code geht es eigentlich joh weiter in meinem Try, nur ich wollte net alles anzeigen xD Der Rest war eigentlich uninteressant für euch 😃



  • Newbie² schrieb:

    Okay es tut mir Leid, vielleicht hab ich mich wirklich wie ein Arsch verhalte, es tut mir Leid...

    Dravere schrieb:

    Und was meint er dann mit dem?

    Newbie² schrieb:

    Mit Try wird mein ganzer Prozess langsam und es dauert dann ewig bis er mein ProgressBar auflädt.

    Grüssli

    Wenn ich Try weglasse, lädt es den ProgressBar schneller als wenn ich mit try arbeite. Da dauert es dann ewig bis es sich auflädt...

    Naja, ich meinem Code geht es eigentlich joh weiter in meinem Try, nur ich wollte net alles anzeigen xD Der Rest war eigentlich uninteressant für euch 😃

    Das scheint dann aber ein sehr merkwuerdiges Verhalten zu sein, kannst du dein Verhalten auf ein Minimalbeispiel reduzieren sodass wir in der Lage sind das nachzuvollziehen. Weil auf den ersten Blick scheint das was du beschreibt sich nahe am undefinierten Verhalten zu bewegen und das ist fuer C# nicht Logisch.



  • Newbie² schrieb:

    Naja, ich meinem Code geht es eigentlich joh weiter in meinem Try, nur ich wollte net alles anzeigen xD Der Rest war eigentlich uninteressant für euch 😃

    Durch die Beschreibung des Verhaltens wird der Rest eigentlich nur interessanter.


Anmelden zum Antworten