using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Ex27Resource
{
class Program
{
static void Main(string[] args)
{
StreamWriter writer = new StreamWriter("test.txt");
writer.Dispose(); // writer.Close()가 호출된다
ResourceManager rm = new ResourceManager();
rm.AllocateResource();
rm.UseResource();
rm.Dispose();
Console.ReadLine();
}
}
class ResourceManager : IDisposable // IDisposable 가 자원을 해제
{
private StreamWriter writer = null;
public void AllocateResource()
{
writer = new StreamWriter("test.txt");
Console.WriteLine("비관리형 리소스가 할당 되었습니다.");
}
public void UseResource()
{
writer.WriteLine("Test Message");
}
//소멸자 : 객체 소멸시에 자동으로 호출 (Finalize()로 컴파일)
~ResourceManager()
{
Console.WriteLine("비관리형 리소스가 해제 되었습니다.(Finalize)");
}
public void Dispose()
{
Console.WriteLine("비관리형 리소스가 해제 되었습니다.(Dispose)");
GC.SuppressFinalize(this); //Finalize호출 금지
}
}
}
Ex01 ~ Ex27 코딩 파일
'프로그램 > C# - Study' 카테고리의 다른 글
C# - EX02 - MSSQL 과 C# 연동 효율적인 방법 ( 콘솔버젼 ) (0) | 2010.10.14 |
---|---|
C# - EX01 - MSSQL 연동 ( 콘솔 버젼 ) (1) | 2010.10.13 |
C# - Ex26Thread 쓰래드 (3) | 2010.10.13 |
C# - Ex25Delegate 델리게이트 (1) | 2010.10.13 |
C# - Ex24DirectoryAndFile (0) | 2010.10.13 |