[C#] 콜백

Flaming Bun·2025년 7월 7일

C#

목록 보기
25/35

참고 영상 : 콜백

🔥 콜백

목적

  • 피호출자가 호출자를 호출하는 것
  • 시스템에서 특정 시점에 알림을 주는 것
  • 콜백 구현의 필요성 : 주기 확인 vs 콜백(CallBack)
  • 콜백 구현 방법 : (Interface)Function CallBack VS Delegate CallBack

방법

상태 확인(주기)

작업이 완료 됐는지 주기적으로 확인하는 방법

단점 : 완료 됐는지 확인하는 시점과 완료 됐을 때 시점에 차이가 있다.

콜백

작업 요청을 하고 -> 작업이 끝나면 자동으로 자동이 완료됐다고 알린다.

Interface 콜백

interface ICallBack
{
	public void fCallBack();
}

class AClass : ICallBack
{
	Child child = new Child(this);
    
    // (Interface) Function 구현
    public void fCallBack()
    {
    	// 내부 로직
    }
}

class BClass
{
	AClass _aClass;

	public Child(AClass aClass)
    {
    	_aClass = aClass
    }
    
    public void DoWork()
    {
    	// 작업 시작
        
        // 작업 끝
        
        // 작업 완료 알림
    	_aClass.fCallBack(); // 이벤트 시점을 BClass에서 정할 수 있다.
    }
}

Delegate 콜백

class AClass
{
	BClass _bClass = new BClass();
    _bClass.dCall = fCallBack(); // AClass의 Function을 연결
    
    private void fCallBack()
    {
    	// 내부 로직
    }
}

class BClass
{
	public delegate void deleCallBack();
    public deleCallBack dCall; // BClass가 필요한 시점에 자신의 delegate Function 호출
    
    public void DoWork()
    {
    	// 작업 시작
        
        // 작업 끝
        
        // 작업 완료 알림
    	dCall(); // 이벤트 시점을 BClass에서 정할 수 있다.
    }
}

0개의 댓글