Backgroundtimer-problem

  • C#

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Bore.

    Backgroundtimer-problem

    Hallo,

    Ich habe mehrere Backgroundtimer, die im Hintergrund laufen sollen.

    Aber ich kann nur 2 Timer im Hintergrund aktiviert haben, sobald ich einen weiteren Timer hinzufüge, funktioniert der nicht.

    Das Script:

    C#-Quellcode

    1. public Form1()
    2. {
    3. InitializeComponent();
    4. backgroundWorker3.RunWorkerAsync(); // dieser Timer funktioniert nicht.
    5. backgroundWorker2.RunWorkerAsync();
    6. backgroundWorker1.RunWorkerAsync();
    7. }


    Wieso geht der nicht? irgendwelche Ideen?

    MFG Bore

    Bore schrieb:

    dieser Timer funktioniert nicht.
    Nicht Timer sondern BackgroundWorker, das ist ein riesen Unterschied.
    Wie äußert es sich, dass dieser BGW nicht läuft?
    Läuft er alleine?
    Kann es sein, dass Deine ThreadProzedur Fehler aufweist? Möglicherweise behindern sich die 3 ThreadProzeduren gegenseitig, poste ggf. mal deren Code.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,

    Ja, also in allen BackgroundWorker wurden Loops mit for verwendet, die dann immer wieder abfragen, ob ein Stand des Wertes in der Registry verändert wurde und dann immer einen Befehl ausführen..
    Ich habe die ganze Zeit meinen Code umgestellt und hatte gedachte, wie RodFromGermany es schon gesagt hat, dass sich mehrere BackgroundWorker blockieren, dies war aber nicht der Fall, da jeder was anderes macht!

    Also habe ich nochmal von ganz vorne begonnen und habe die Datei Form1.Designer.cs gesehen und dort habe ich folgenden Code entdeckt:

    C#-Quellcode

    1. //
    2. // backgroundWorker1
    3. //
    4. this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
    5. //
    6. // backgroundWorker2
    7. //
    8. this.backgroundWorker2.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker2_DoWork);
    9. //


    Keinen backgroundWorker3...
    Der Designer hat es immer wieder gelöscht, als ich etwas beim Form1 geändert habe..
    Jetzt habe ich den Code:

    C#-Quellcode

    1. this.backgroundWorker3.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker3_DoWork);

    hinzugefügt und siehe da, es funktioniert :)


    Danke dir nochmal für deinen Tipp bzw versuche Hilfestellung :)

    MFG Bore

    Edit:
    Rod, wenn ich rausfinde, wie man dir einen Stern gibt, dann bekommst du ihn :)