IClosable.Close Methode

Definition

Gibt Systemressourcen frei, die von einem Windows-Runtime-Objekt verfügbar gemacht werden.

.NETTO Diese Schnittstelle wird als System.IDisposable angezeigt.

C++/CX Diese Schnittstelle wird als Platform::IDisposable angezeigt.

public:
 void Close();
void Close();
public void Close();
function close()
Public Sub Close ()

Hinweise

Die folgenden Implementierungs-/Aufruferhinweise sind hauptsächlich für WRL relevant.

Hinweise für Implementierer

Implementieren Sie diese Methode, um die verwendeten exklusiven Systemressourcen wie Dateihandles, Streams und Netzwerksockets freizugeben. Die -Methode sollte auch andere verwendete Ressourcen freigeben, einschließlich Objektverweise und Arbeitsspeicher, um sie für die Wiederverwendung vorzubereiten.

Diese Methode muss die Close-Methode jedes Objekts aufrufen, das IClosable implementiert.

Die Close-Methode sollte Systemressourcen so schnell wie möglich freigeben, ohne zu blockieren, dass asynchrone Vorgänge abgeschlossen werden. Um sicherzustellen, dass alle Ressourcen vollständig freigegeben werden, muss der Aufrufer warten, bis alle ausstehenden asynchronen Vorgänge abgeschlossen sind, bevor Er Close aufruft.

Nach der Rückgabe von Close befindet sich das Objekt noch im Arbeitsspeicher, aber ohne die benötigten Systemressourcen. Daher können die meisten Member nicht verwendet werden. Ein Member, der von einer freigegebenen Systemressource abhängig ist, kann RO_E_CLOSED zurückgeben, um anzugeben, dass das Objekt geschlossen ist und der angeforderte Vorgang nicht abgeschlossen werden kann.

Hinweise für Anrufer

Wenn Sie Schließen mehrmals aufrufen, gibt es keine Auswirkung; die -Methode gibt S_OK zurück.

Schließen-Methoden können nicht über C++/CX auf Windows-Runtime Klasseninstanzen aufgerufen werden, in denen die Klasse IClosable implementiert hat, sondern automatisch am Ende des aktuellen Bereichs aufgerufen werden. C++/CX-Code für Laufzeitklassen sollte den Destruktor aufrufen oder den letzten Verweis auf NULL festlegen.

In C# wird diese Methode als Dispose verfügbar gemacht. Sie können Dispose entweder direkt aufrufen oder eine using-Anweisung verwenden.

Gilt für: