C#에서 Dispose보다는 using을 사용할 것

관리되지 않는 어떤 자원을 C#에서 빨리 해제하고 싶을 땐 IDisposable 인터페이스를 상속 받게 됩니다. 그런데 이때 Dispose를 직접 호출하는 것보다는 using을 사용해 Dispose가 자동으로 호출되게 하는 게 낫다고 합니다. using Statement (C# Reference)Dispose Pattern를 보면, 이에 대한 내용이 잘 나와 있습니다.

이 내용과 관련한 예를 들어 보겠습니다. 유니티 엔진 사용 시엔 WWW 클래스를 사용할 때 불필요한 TCP 연결이 사라지도록 하기 위해 다음처럼 Dispose를 호출하곤 합니다.

using System.Collections;
using UnityEngine;

public class Example : MonoBehaviour
{
	IEnumerator Start()
	{
		WWW www = new WWW("http://images.earthcam.com/ec_metros/ourcams/fridays.jpg");
		yield return www;
		renderer.material.mainTexture = www.texture;
		www.Dispose();
	}
}

그런데 위처럼 하기보다는 아래처럼 using을 사용하는 게 낫겠습니다.

using System.Collections;
using UnityEngine;

public class Example : MonoBehaviour
{
	IEnumerator Start()
	{
		using (WWW www = new WWW("http://images.earthcam.com/ec_metros/ourcams/fridays.jpg"))
		{
			yield return www;
			renderer.material.mainTexture = www.texture;
		}
	}
}
Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중