Announcement

Collapse
No announcement yet.

Timer, Threads und Datenbankzugriff

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Timer, Threads und Datenbankzugriff

    Hallo zusammen,

    ich habe in meiner Klasse 2 Timer. Der erste (Timer1) sendet alle 5 Minuten ein Lebenszeichen an die Datenbank (Update Tabelle ...)
    Der 2. (Timer2) fragt die Tabelle alle 5 Minuten, ob das Lebenszeichen vorhanden ist (Select Count(*)...).

    Beide Timer befinden sich in Unterschiedlichen Threads. Hierzu ist Timer1 vom Typ System.Timers.Timer (in einem eigenen Thread) und Timer2 vom Typ System.Windows.Form.Timer (im Main-Thread).

    Wenn nun Timer1 an die Datenbank will um sein Update abuzsetzen bekomme ich eine (für mich) seltsamme Fehlermeldung:
    Es wurde versucht, einen RCW freizugeben, der derzeit benutzt wird. Der RCW wird im aktiven Thread oder einem anderen Thread verwendet. Der Versuch, einen RCW freizugeben, der gerade verwendet wird, kann Datenbeschädigung oder -verlust zur Folge haben.
    Hat jemand eine Ahnung, was das ist und wie ich es korrigieren kann?

  • #2
    ok, hat sich erledigt. Der eigenständige Thread benötigt eine eigene Connecxtion zur DB, da es sonst zu diesen überschneidungen kommt.

    Comment


    • #3
      Hallo Andreas,

      außerdem solltest du unbedingt beachten, dass eine Connection unter NET immer nur kurzfristig erstellt und geöffnet wird; nach Erledigung des Kommandos folgen sofort Close und Dispose - am besten gekapselt in einem Using-Block.

      Gruß Jürgen

      Comment


      • #4
        danke für den Hinweis, ich werde es beachten.

        Comment

        Working...
        X