Hintergrund-Thread mit C++-dll möglich?

18/08/2009 - 09:51 von Martin Enke | Report spam
Liebe NG,

Ich habe folgendes Problem:

Mein Prog muss eine Prozedur abarbeiten die nicht vom OS gestört, sprich
unterbrochen, werden darf. Oder zumindest nicht für làngere Zeit(ms).

Meine Lösung: Die Prozedur ist in einer ActiveX.exe und làuft sozusagen
als Out-Of-Procress-Server. Das würde auch funktionieren, hàtte Windows
nicht gelegentlich ein Problem mit ActiveX.exen wenn diese von einem
eingeschrànkten Account aus angesprochen werden.

Jetzt möchte ich eine C++-dll schreiben die mehrere Threads abarbeiten
kann. die o.g. Prozedur benötigt sowieso keine COM-Objekte.
Frage hat jemand schonmal eine Multithread-dll geschrieben und die in
ein VB6 Programm integriert? Und funzt das? Ich erinnere mich gelesen zu
habe, dass das prinzipiell nicht geht? Bevor ich also anfange


Danke
 

Lesen sie die antworten

#1 Timo Kunze
18/08/2009 - 10:06 | Warnen spam
Martin Enke schrieb:
Mein Prog muss eine Prozedur abarbeiten die nicht vom OS gestört, sprich
unterbrochen, werden darf. Oder zumindest nicht für làngere Zeit(ms).



Jeder Thread wird vom Scheduler regelmàßig unterbrochen. Für die
Programmierung sollte das aber irrelevant sein.

Jetzt möchte ich eine C++-dll schreiben die mehrere Threads abarbeiten
kann. die o.g. Prozedur benötigt sowieso keine COM-Objekte.
Frage hat jemand schonmal eine Multithread-dll geschrieben und die in
ein VB6 Programm integriert? Und funzt das? Ich erinnere mich gelesen zu
habe, dass das prinzipiell nicht geht? Bevor ich also anfange



Eines meiner in C++ geschriebenen ActiveX-Controls erzeugt mehrere
Threads. Das funktioniert problemlos. Zu beachten ist aber, dass die
Kommunikation mit dem Hauptprogramm (Events, COM-Schnittstellen) immer
über den Hauptthread erfolgen muss.

Timo
www.TimoSoft-Software.de - Unicode controls for VB6
"Those who sacrifice freedom for safety deserve neither."
"Demokratie ist per Definition unsicher. Ihr Schutz entsteht aus der
Überzeugung, dass die demokratischen Kràfte überwiegen und sich – auf
demokratischem Wege – durchsetzen."

Ähnliche fragen