BulkLoaderdㅔ는 크게 2개의 이벤트로 나눌 수 있따


BulkProgressEvent에서


PROGRESS와 COMPLETE이다.


PROGRESS는 데이터를 로딩할 때 계속 호출되는 이벤트이고, COMPLETE는 모든 데이터를 불러왔을 때 호출되는 이벤트이다.


progress는 로딩의 진행상황 같은걸 알 때 쓰이는데, 사실 나는 이게 로딩화면 말고 과연 쓰이는 곳이 있을까 의문이다 ( --;) 하지만 있음으로 해서 매우 훌륭한 이벤트임은 틀림없다.


한 클래스에서 좀 로더를 여러개 쓰기 싫어서 몇 가지 삽질을 했고 내린 결론이다.


1. 


알다시피 이벤트 기반의 프로그램은 (이게 시분할을 해서 돌아가는건지 모르겠지만) 리스너를 마구 건들면 안되는데 weakreference 로 참조하여 둘 다 호출을 하면 중복호출이 혹시 안되지 않을까 했다.


결론: 둘다 된다. GC에서 reference로 체크를 안해서 빨리 날릴 뿐이지 뭐 별다를 건 없었다. 역시 add를 해줬으면 remove를 해줘야한다.


2. 

그 다음엔 리스너를 add한 후 start하고 리스너를 remove 한 다음에 다른 리스너를 애드를 하면 어떻게 될까?


이벤트 기반이라 로딩은 따로 돌아가고 프로그램은 계속 다음 라인으로 넘어간다. 즉 로딩하기 전에  remove를 하면 어떻게 될까?


결론: ㅎㅎㅎ역시 ㅎㅎㅎ 안됨 ㅎㅎㅎ 




최종도출결론: 그래서 리스너를 두 개로 나누었습니다.


진작에 나눌것을.


...하아...



Posted by TY
,