내 모델에서는 ObservableCollection의 CollectionChanged 이벤트에 가입하기 위해 특정 컬렉션이 변경 될 때이를 인식해야합니다. 이것은 작업이 상당히 비싼 자원이라는 점을 제외하면 정말 잘 작동합니다.ObservableCollection.CollectionChanged에서 값 비싼 작업 실행
클라이언트 코드가 않습니다 그래서 때
foreach(Item i in longList)
{
model.ObservableCollection.Add(i);
}
마지막 항목이 추가 된 후 중요하다 모든 결과 때 각 반복에 대한 비용이 많이 드는 작업을 실행하고 있습니다.
다른 CollectionChanged 이벤트가 발생해도 첫 번째 이벤트가 여전히 실행 중일 때 현재 실행중인 이벤트 핸들러를 취소 한 다음 가장 최근 이벤트를 계속 처리 할 수 있습니까?
이것에 대해 자세히 설명해 주시겠습니까? 이것은 가장 최근에 제기 된 것 대신에 첫 번째 사건 만 처리할까요? – djskinner
일반적으로 타이머를 실행하면 대기열에 넣지만 처리합니다. 이렇게하면 메서드 호출을 피하면서 하나의 메서드 호출에서 모든 이벤트를 처리하게됩니다. 이것은 "너무 많은"이벤트가 발생하는 많은 상황에서 유용합니다 ... –