.NET C# Assembly einmal laden

rabado

Mitglied
Hallo Community,

ich möchte für mehrere MDE-Anwendungen ein und die selbe Assembly verwenden, welche eine große Datenmenge geladen hat.
Damit dieser lange Ladevorgang nur einmal durchgeführt wird suche ich eine Möglichkeit, das mehrmalige Laden der Assembly zu unterbinden.

Ich habe es schon mit Static und Singleton probiert, die Daten werden immer wieder neu geladen.
Ich möchte keine SQL-Datenbank verwenden, mein Ansatz sieht so aus:
Code:
public sealed class Singleton
    {


        private static readonly Singleton instance = new Singleton();

       
        public static Singleton Instance
        {
            get
            {
                LadeDaten();
                return instance;
            }
        }

        private Singleton()
        {
        }

        static Singleton()
        {
        }

      private static LadeDaten()
      {
                   //....irgendwas
      }
}
.NET c# CompactFramwork 2.0
 

Der Wolf

Erfahrenes Mitglied
Hey,

ich frage mich gerade ob das in der Richtung denn überhaupt möglich ist. Das einmalige Laden von Daten passiert ja, soweit ich weiss erstmal nur bei dynamischen Libraries, die nur einmal im Speicher liegen. Singleton-Klassen an sich bedeutet ja erstmal, dass es nur eine Instanz im <B>Kontext der derzeitigen Anwendung</B> gibt. Über mehrere Anwendungen hinweg kann es natürlich auch mehrere Instanzen der Klasse geben.

Ein Ansatz der mir jetzt einfallen würde, vorrausgesetzt ich habe dein Problem verstanden, wäre es, für die Daten eine Art eigene kleine Datenbank zu schreiben über die sich die anderen Anwendungen zum Beispiel per TCP/IP Socket verbinden und Daten abfragen.

Wieso willst du denn keine MySQL Datenbank verwenden?

Gruß,
Wolf

P.S.: Ich bin mit dem CompactFramework 2.0 überhaupt nicht vertraut.
 

rabado

Mitglied
Danke für die Antwort, ich habe mir das schon fast gedacht.
Es geht hier um eine MDE-Anwendung (Handscanner), wo die Daten täglich aktualisiert werden.
Als Datenbank käme dann nur DB4O oder SQLCe in Frage.
 

Der Wolf

Erfahrenes Mitglied
Hey,

meine Antwort ist keinesfalls als verbindlich zu betrachten. Wie gesagt, ich habe von CompactFramework 2.0 keine großartige Ahnung. Nur das Singleton Pattern wird nicht über Prozess-Grenzen hinweg arbeiten, sondern nur Prozess-Intern. Wenn du also einen Anwendung mit mehreren Threads hast, dann kannst du es verwenden um die Daten in deiner DB nur einmal laden zu lassen. Aber eventuell kommen hier ja noch mehr Ideen.

Gruß,
Wolf
 

rabado

Mitglied
Hey,

nein, als verbindlich betrachte ich die Antwort nicht, sie deckt sich nur mit meinen Tests.
Ich habe heute das SQLCe von Mircosoft getestet, bin was die Datenverarbeitung betrifft sehr weit gekommen, aber nicht sehr zufrieden.
Das Einlesen von ca. 100.000 Zeilen dauert schon sehr lange ist aber leider unumgänglich.
Die MDE-Geräte mit ARM-Prozessor sind extrem langsam.

Gruß
Ralf
 

Neue Beiträge