AutoThread-Beispiel: 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-Attribute Beispiel 29eewbfh(v=vs.100).md ist die attributierte Version dieses Beispiels.
Sicherheitshinweis |
---|
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.
Erstellen und Ausführen des Beispiels
So erstellen und in diesem Beispiel führen
Öffnen Sie die Projektmappendatei AutoThread.sln.
From the Build menu, click Build Solution. Dies wird erstellen und Registrieren der Client und Server.
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.
Fügen Sie eines Client-Steuerelemente (AutoCtl-Klasse) in jeden Testcontainer ein.
Klicken Sie eines der Steuerelemente und beachten Sie, dauert eine Sekunde für den Server zurückgeben.
Positionieren Sie und Größe ändern Sie der Testcontainer, sodass Sie beide zur gleichen Zeit sichtbar sind.
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 CAtlAutoThreadModule 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.
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