
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
896
|
Chapter 16: Networking
#region Construction / Cleanup
/// <summary>
/// CTOR
/// </summary>
/// <param name="pipeName">name of the pipe</param>
public NamedPipeClient(string pipeName)
{
_pipeName = pipeName;
Trace.WriteLine("NamedPipeClient using pipe name of " + _pipeName);
}
/// <summary>
/// Finalizer
/// </summary>
~NamedPipeClient( )
{
Dispose(false);
}
public void Dispose( )
{
Dispose(true);
GC.SuppressFinalize(this);
}
private void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if (!this.disposed)
{
ClosePipe( );
}
disposed = true;
}
private void ClosePipe( )
{
if (!_handle.IsInvalid)
{
_handle.Close( );
}
}
/// <summary>
/// Close - because it is more intuitive than Dispose...
/// </summary>
public void Close( )
{
ClosePipe( );
}
#endregion
Example 16-4. NamedPipeClient class (continued)