TcpClient.Dispose メソッド
TcpClient によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。
Protected Overridable Sub Dispose( _
ByVal disposing As Boolean _)
[C#]
protected virtual void Dispose(booldisposing);
[C++]
protected: virtual void Dispose(booldisposing);
[JScript]
protected function Dispose(
disposing : Boolean);
パラメータ
- disposing
マネージ リソースとアンマネージ リソースの両方を解放する場合は true 。アンマネージ リソースだけを解放する場合は false 。
解説
このメソッドは、パブリックな Dispose() メソッドと Finalize メソッドによって呼び出されます。 Dispose() は、 disposing パラメータを true に設定してこのメソッドを呼び出します。 Finalize は、 disposing を false に設定してこのメソッドを呼び出します。
disposing パラメータが true の場合、このメソッドは、この TcpClient が参照するすべてのマネージ オブジェクトが保持しているリソースをすべて解放します。参照するそれぞれのオブジェクトの Dispose() メソッドが呼び出されると、実行されます。
継承時の注意: Dispose は、他のオブジェクトから複数回呼び出すことができます。 Dispose(Boolean) をオーバーライドする場合は、以前に Dispose を呼び出したときに破棄されたオブジェクトを参照しないように注意する必要があります。 Dispose(Boolean) の実装方法の詳細については、「 Dispose メソッドの実装 」を参照してください。
Dispose および Finalize の詳細については、「 アンマネージ リソースのクリーンアップ 」および「 Finalize メソッドのオーバーライド 」を参照してください。
使用例
派生クラスを使用して Dispose メソッドを実行する例を次に示します。 true を指定するとマネージ リソースとアンマネージ リソースの両方が解放されます。
' This derived class demonstrates the use of three protected properties belonging to the TcpClient Class.
Public Class MyTcpClientDerivedClass
Inherits TcpClient
Public Sub New()
End Sub 'New
Public Sub UsingProtectedMethods()
'Uses the protected 'Active' property belonging to the TcpClient base class
'to determine if a connection is established.
If Me.Active Then
' Calls the protected 'Client' property belonging to the TcpClient base class.
Dim s As Socket = Me.Client
'Uses the Socket returned by Client to set an option that is not available using TcpClient.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1)
End If
'To free all resources, calls protected virtual method Dispose belonging to the TcpClient base class.
Me.Dispose(True)
GC.SuppressFinalize(Me)
End Sub 'UsingProtectedMethods
End Class 'MyTcpClientDerivedClass
[C#]
// This derived class demonstrates the use of three protected methods belonging to the TcpClient class
public class MyTcpClientDerivedClass : TcpClient{
// Constructor for the derived class.
public MyTcpClientDerivedClass() : base(){
}
public void UsingProtectedMethods(){
// Uses the protected 'Active' property belonging to the TcpClient base class
// to determine if a connection is established.
if (this.Active){
// Calls the protected 'Client' property belonging to the TcpClient base class.
Socket s = this.Client;
// Uses the Socket returned by Client to set an option that is not available using TcpClient.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
}
// To free all resources, calls the protected virtual method Dispose belonging to the TcpClient base class.
this.Dispose(true);
GC.SuppressFinalize(this);
}
}
[C++]
// This derived class demonstrates the use of three protected methods belonging to the TcpClient class
__gc public class MyTcpClientDerivedClass : public TcpClient{
// Constructor for the derived class.
public:
void UsingProtectedMethods() {
// Uses the protected 'Active' property belonging to the TcpClient base class
// to determine if a connection is established.
if (this->Active) {
// Calls the protected 'Client' property belonging to the TcpClient base class.
Socket* s = this->Client;
// Uses the Socket returned by Client to set an option that is not available using TcpClient.
s->SetSocketOption(SocketOptionLevel::Socket, SocketOptionName::Broadcast, 1);
}
// To free all resources, calls the protected virtual method Dispose belonging to the TcpClient base class.
this->Dispose(true);
GC::SuppressFinalize(this);
}
};
[JScript]
// The purpose of this class is to demonstrate the use of three protected methods belonging to the TcpClient Class
public class MyTcpClientDerivedClass extends TcpClient{
// constructor
public function MyTcpClientDerivedClass(){
super();
}
public function importProtectedMethods(){
//Use the protected property 'Active' belonging to the TcpClient base class.
//This determines if connection is established.
if (this.Active){
//Calling the protected property 'client' belonging to the TcpClient base class.
var s : Socket = this.Client;
//Suppose you want to set an option that is not available by just import TcpClient object.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
}
//Call protected virtual method Dispose belonging to the TcpClient base class to free all resources.
this.Dispose(true);
GC.SuppressFinalize(this);
}
}
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET