Freigeben über


Beispiel für AutoThread-Attribute: Veranschaulicht die Verwendung von "CAtlAutoThreadModule"

Das AutoThread-Beispiel demonstriert CAtlAutoThreadModule verwenden. Der Server ist in der Datei Server.exe implementiert. The module of the EXE is derived from CAtlAutoThreadModuleinstead of CAtlModule.

Das AutoThread-Beispiel ehf89546(v=vs.100).md ist die nicht attributierte Version dieses Beispiels.

SicherheitshinweisSicherheitshinweis

Dieser Beispielcode soll ein Konzept veranschaulichen, und es wird nur den Code, der für dieses Konzept relevant sind. Möglicherweise erfüllt dieser nicht die Sicherheitsanforderungen für eine bestimmte Umgebung, und er sollte nicht genau wie dargestellt verwendet werden. Wir empfehlen, Sicherheits- und Fehlerbehandlungscode hinzuzufügen, um Ihre Projekte sicherer und stabiler zu machen. Microsoft stellt diesen Beispielcode "Wie besehen"keine Garantien.

So erhalten Sie Beispiele und Anweisungen für deren Installation:

Um Beispiele von Visual Studio zuzugreifen

  • im Menü Hilfe Menü klicken Beispiele.

    Standardmäßig sind die Beispiele in installiert. Laufwerk: \Programme\Microsoft visual Studio 10.0\Samples\.

  • Die neueste Version dieses Beispiels und eine Liste der anderen Beispiele finden Sie unter Visual Studio Samples auf der MSDN-Website.

So erstellen und in diesem Beispiel führen

  1. Öffnen Sie die Projektmappendatei AutoThread.sln.

  2. Erstellen Sie aus der Menü, und klicken Sie auf Projektmappe. Dies wird erstellen und Registrieren der Client und Server.

  3. Starten Sie zwei Instanzen von den Testcontainer für ActiveX-Steuerelemente. Finden Sie unter Testen von Eigenschaften und Ereignissen mit Testcontainer Weitere Informationen zum Zugreifen auf den Testcontainer.

  4. Fügen Sie eines Client-Steuerelemente (CAutoCtl-Klasse) in jeden Testcontainer ein.

  5. Klicken Sie eines der Steuerelemente und beachten Sie, dauert eine Sekunde für den Server zurückgeben.

  6. Positionieren Sie und Größe ändern Sie der Testcontainer, sodass Sie beide zur gleichen Zeit sichtbar sind.

  7. Klicken Sie auf eine der Steuerelemente und klicken Sie schnell das andere Steuerelement. Beachten Sie, dass Sie warten zu ungefähr demselben Zeitpunkt enden. (Wenn CComAutoThreadModule nicht verwendet wurden, würde das erste Steuerelement nach einer Sekunde abgeschlossen, aber das zweite Steuerelement würde nicht fertig stellen, bis eine vollständige Sekunde nach das erste Steuerelement. Der zweite Aufruf von Ruhezustand würde nicht auftreten, bis die erste abgeschlossen hatte.) Sie können die Delay(PropGet) und Delay(PropPut) Methoden So passen Sie die Anzahl der Millisekunden an der Server für den Ruhezustand versetzt. Wenn ordnungsgemäß festgelegt, der zweite Aufruf in den Ruhezustand vor dem ersten Aufruf in den Ruhezustand zurückgegeben kann.

Funktionsweise des Beispiels

Die Serverschnittstelle verfügt über eine einzige Methode: Sleep. Diese Methode versetzt den Serverthread für einen bestimmten Zeitraum den Ruhezustand versetzt. Des Clientbereichs des Beispiels ist ein ActiveX-Steuerelement, die des Servers Sleep-Methode, aufruft Wenn der Benutzer das Steuerelement klickt. Der Client hat eine Eigenschaft mit dem Namen Delay, der darstellt, wie lange der Serverthread im Ruhezustand verweilen wird. Das Steuerelement zeigt den Text "Bereit"Wenn Sie einen Mausklick wartet. Der Text "Warten"wird angezeigt, wenn das Steuerelement für den Server im Ruhezustand beenden wartet.

Attribute

In diesem Beispiel werden die folgenden Attribute verwendet:

  • Co AutoThread/AutoClient-, Dual, Emitidl, Helpstring, Id, in Unterrichtseinheit Objekt außerhalb Pointer_default, progid, Propget, Propput, Registration_script, Retval, threading, Uuid, Version, vi_progid

  • AutoThread/AutoServer Co-, Dual, Emitidl, Helpstring, Id, Modul, Objekte Pointer_default, progid, threading, Uuid, Version, Vi_progid

Schlüsselwörter

In diesem Beispiel werden die folgenden Schlüsselwörter verwendet:

AtlGetObjectSourceInterface; BEGIN_SINK_MAP; CoCreateInstance; DECLARE_CLASSFACTORY_SINGLETON; IDispEventSimpleImpl::DispEventAdvise; END_SINK_MAP; IConnectionPointContainerImpl; IConnectionPointImpl; IDispEventImpl; OLE2CT; SINK_ENTRY_EX; SysAllocString; USES_CONVERSION; VARIANT; VariantClear; VariantCopy

Hinweis

Einige Beispiele wie diesen, wurden nicht geändert, um Änderungen in der Visual C++-Assistenten, Bibliotheken und Compiler, demonstrieren aber dennoch wie Sie die gewünschte Aufgabe durchführen.

Siehe auch

Weitere Ressourcen

ATL-Attributbeispiele