System.Win.ComObj.TThreadingModel

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

TThreadingModel = (tmSingle, tmApartment, tmFree, tmBoth, tmNeutral);

C++

enum DECLSPEC_DENUM TThreadingModel : unsigned char { tmSingle, tmApartment, tmFree, tmBoth, tmNeutral };

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
enum public
System.Win.ComObj.pas
System.Win.ComObj.hpp
System.Win.ComObj System.Win.ComObj

Beschreibung

TThreadingModel gibt an, wie das COM-System die Aufrufe eines COM-Objekts serialisiert.

TThreadingModel bestimmt, wie das COM-System die Aufrufe eines COM-Objekts serialisiert. Die Anwendung muss sicherstellen, dass die Implementierung des COM-Objekts das angegebene Thread-Modell sicher behandeln kann.

Die folgende Tabelle enthält die möglichen Werte für TThreadingModel:



Wert Bedeutung

tmSingle

COM serialisiert alle Client-Anforderungen. Das Objekt benötigt keine Thread-Unterstützung.

tmApartment

COM stellt sicher, dass jede Instanz des COM-Objekts immer nur eine Anforderung bearbeitet. Zwar können verschiedene Objekte auf demselben Server in unterschiedlichen Threads aufgerufen werden, aber jedes Objekt wird nur in diesem einen Thread aufgerufen. Die Instanzdaten sind sicher, aber globale Daten müssen mithilfe von kritischen Abschnitten oder einer anderen Form der Serialisierung geschützt werden. Die lokalen Variablen des Threads sind über mehrere Aufrufe hinweg zuverlässig.

tmFree

Das freie Threading wird auch Multi-Threaded Apartment genannt. Das COM-Objekt kann jederzeit Aufrufe von beliebigen Threads erhalten. Objekte müssen alle Instanz- und globalen Daten mit Hilfe von kritischen Abschnitten oder einer anderen Form der Serialisierung schützen. Die lokalen Variablen des Threads sind bei mehreren Aufrufen nicht zuverlässig.

tmBoth

Die Objekte können Clients unterstützen, die das freie oder das Apartment-Modell verwenden. Wenn Clients das freie oder das Single-Thread-Modell verwenden können, werden beide Modelle unterstützt.

tmNeutral

Mehrer Clients können das Objekt gleichzeitig in verschiedenen Threads aufrufen, aber COM stellt sicher, dass die Aufrufe nicht miteinander in Konflikt geraten. Sie müssen Thread-Konflikte verhindern, die globale Daten und Instanzendaten betreffen, auf die von mehreren Methoden zugegriffen wird. Dieses Modell sollte nicht bei Objekten mit Benutzeroberflächen verwendet werden. Das Modell steht nur unter COM+ zur Verfügung. Es wird unter COM auf das Apartment-Modell abgebildet.