Stimmt, du hast Recht. Ich sprach von der Implementierung eines Datencontainers
Ich glaube, dass noch nicht so ganz klar ist, was ich vor habe.
Es geht nicht darum, mehrere Threads gleichzeitig (bzw. seriell) auf die Datenbank zugreifen zu lassen, es wird wahrscheinlich immer nur Einer sein. Ziel ist es dagegen, den Zugriff auf die Datenbank vollständig in einen eigenen Thread zu verlagern, damit der Thread, von dem das Speichern angestoßen wurde, nicht warten muss.
Die beiden Threads kommen nur dann in Berührung, wenn der eine Thread dem Kontext-Thread eine neue Aufgabe gibt.
Der Grund ist der, dass unter bestimmten Bedingungen jeder Schreib-Zugriff sofort gespeichert wird. Zusätzlich möchte ich dann noch einbauen, dass wartende Aufgaben geprüft und zusammen gelegt werden können um die Zahl der Speicher-Zugriffe zu reduzieren.
PS:
Jetzt habe ich beim Schreiben so viel über das Thema nach gedacht und einen anderen Weg:
Mein Ziel war ja, zu verhindern, dass sehr häufiges Speichern nicht zu stark verlangsamt. Eine Möglichkeit wäre, dass erst nach einer festen Zeit, in der keine Änderung getätigt wurde, gespeichert wird. Entweder der Zeitraum ist fest definiert, oder er wird durch Begin- und End-Methoden beim Aufruf vorgegeben.
Das letztendliche Speichern kann ich theoretisch dann auch in einen eigenen Thread verlagern, aber soweit ich mich erinnere, macht das async-Feature von .NET das etwas anders, sogar ohne Threads. Ein Task teilt die Aufgabe in viele kleine Teile auf, die dann im Aufrufer-Thread ausgeführt werden, oder?
Wenn ja, dann löst das mal eben mein Problem
Allerdings würde es mich trotzdem interessieren, ob mein altes Vorhaben auf diese Art möglich ist ^^