none
Sleep Methode abbrechen RRS feed

  • Frage

  • Hallo ich habe folgenden Code: Ich möchte aber auch während dieser Sleep Methode abbrechen können, geht das irgendwie?

    System.Threading.Thread.Sleep(3000);
    Donnerstag, 6. Januar 2011 13:24

Antworten

  • Ich hatte das alles aus einem Beispiel aus dem Netz genommen, habe es jetzt mit nem Timer aufgebeut. Funktioniert auch gut. trotzdem danke
    • Als Antwort markiert Bensen83 Donnerstag, 6. Januar 2011 15:06
    Donnerstag, 6. Januar 2011 15:06

Alle Antworten

  • Hallo B

    die Stichworte sind
    WaitHandle
    http://msdn.microsoft.com/de-de/library/system.threading.waithandle.aspx

    in Form etwa von ManualResetEvent, Mutex uva
    http://msdn.microsoft.com/de-de/library/system.threading.manualresetevent.aspx


    Übersicht über Synchronisierungsprimitiven
    'Signalisieren'
    http://msdn.microsoft.com/de-de/library/ms228964.aspx

    Donnerstag, 6. Januar 2011 13:35
  • sorry, konnte da nichts finden. oder ich check es nicht ;-)
    Donnerstag, 6. Januar 2011 13:55
  • sorry, konnte da nichts finden. oder ich check es nicht ;-)

    Eher letzteres. Ist wirklich nicht böse gemeint aber es wäre auch für dich sehr hilfreich, wenn Du dir zuallererst Grundlagen aneignest und dann an die komplexeren Sachen rangehst.

    So wird das eher nix.

    Frage: Warum willst Du den Thread schlafen schicken? Wenn deine Anwendung nichts zu tun hat, passiert da auch nichts, von daher ist das IMHO absolut unnötig.

    Wenn ich deine andere Frage so anschaue, dünkt mir zwar, warum Du das machen willst aber das ist eher deinerseits ein extremes Verständnisproblem von ordentlicher Programmierung. Das ist nicht schlimm, jeder hat mal angefangen aber dein Weg, dich da durchzukämpfen, ist IMHO nicht der richtige.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 6. Januar 2011 14:03
    Moderator
  • B,

    Ein Abbruch kann nur durch andere Threads angestossen werden, Prinzip uva:

     ManualResetEvent mre = new ManualResetEvent(false);
     // ANDERER THREAD MACHT:  mre.Set();
     mre.WaitOne(3000);   // wird abgebrochen bei Set() in anderen Thread


    PS, IMHO
    leider ist deine Vorgehensweise etwas fragwürdig, Programmieren heisst nicht sich alles vordiktieren zu lassen.
    Neben Büchern als Quelle für minimale Grundlagen:
    auf Dauer haben nur jene Erfolg, die das KnowHow aus gegebenen Stichworten/Links usw selber erarbeiten/erweitern können.

    Donnerstag, 6. Januar 2011 14:08
  • ich habe einen backgroundhandler, welchen ich aufrufe. dain läuft eine schleife und in der schleife schicke ich ihn schlafen, damit er kurz wartet. oder sollte mn den backgroundhandler lieber mit nem timer aufrufen?
    Donnerstag, 6. Januar 2011 14:10
  • ich habe einen backgroundhandler, welchen ich aufrufe. dain läuft eine schleife und in der schleife schicke ich ihn schlafen, damit er kurz wartet. oder sollte mn den backgroundhandler lieber mit nem timer aufrufen?

    Die Frage wurde mehrfach beantwortet. Bitte lies die Postings und arbeite die Links durch (vollständig).

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 6. Januar 2011 14:12
    Moderator
  • B,

    mit Code kann man bekanntlich alles irgendwie hinbiegen.
    Threads/BackgroundWorker, Timer, Sleep usw dienen ihren ganz bestimmten Zwecken, in anderen Fällen (oder Kombinationen) sind sie aber absolut fehl am Platz, oder gar schlicht 'gefährlich'!

    Da du hier immer nur winzige, unvollständige Ausschnitte aus deinen Aufgaben/Code bekanntgibst, bestehen theoretisch zwar immer auch dutzende von Lösungsmöglichkeiten, davon sind aber die allermeisten unpassend für im eigentlichen Kontext deiner (uns unbekannten!)  Gesamtaufgabe.

    Ich würde dir vorerst auch mal raten, beim unkritischen  Timer-Tick zu bleiben und alle Threads/BackgroundWorker/Sleep/WaitHandle uä  zu vergessen.
    Erst wenn du so ein paar Apps erfolgreich erstellt hast, könnten bei Bedarf Threads als 'Optimierung' ein Thema werden. Wenn dann nach Studium entsprechender Bücher/Artikel noch Fragen sind, dann ist dieses Forum der geeignete Ort.

    Donnerstag, 6. Januar 2011 14:38
  • Ich hatte das alles aus einem Beispiel aus dem Netz genommen, habe es jetzt mit nem Timer aufgebeut. Funktioniert auch gut. trotzdem danke
    • Als Antwort markiert Bensen83 Donnerstag, 6. Januar 2011 15:06
    Donnerstag, 6. Januar 2011 15:06