Multithreading



  • Hallo zusammen,

    ich habe eine theoretische Frage.

    Und zwar habe ich einen COM-Server mit einer Schnittstelle, die zwei Methode beinhaltet. Jetzt möchte ich aus meinen VC++ Programm von zwei Threads aus darauf zugreifen.

    Was muss ich beachten bei der Erstellung meines COM-Servers?
    Wie verhaltet sich dieser, wenn ich von Thread1 und von Thread2 auf die selbe Methode zugreife?



  • Tja also, d.h. IMHO du mußt deinen COM Server Threadsicher programmieren. D.h. wie bei jeder anderen Komponente auch mußt du mit Synchronisationsobjekten innerhalb deines Servers sicherstellen, das kein Unsinn passieren kann.



  • So ganz stimmt das nicht!

    Zum einen: Ist Dein COM-Server Apartment- oder Multithreaded?

    Wenn Apartment-Threaded: Da jeder Thread für COM mit CoInitialize einem Apartment zugeordnet wird, brauchst Du nur über Marshaling die Schnittstelle aufzurufen, die Synchronisation übernimmt COM

    Wenn Multithreaded: Hier trifft die Antwort von TheBigW zu!


Anmelden zum Antworten