참고 영상 : 콜백
작업이 완료 됐는지 주기적으로 확인하는 방법
단점 : 완료 됐는지 확인하는 시점과 완료 됐을 때 시점에 차이가 있다.
작업 요청을 하고 -> 작업이 끝나면 자동으로 자동이 완료됐다고 알린다.
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에서 정할 수 있다.
}
}
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에서 정할 수 있다.
}
}