Вам придется реализовать INotifyCompletion, а еще есть дополнительный интерфейс, который тоже рекомендуется по возможности реализовать. Он называется ICriticalNotifyCompletion. Они выполняют похожие задачи: каждый определяет один метод (OnCompleted и UnsafeOnCompleted соответственно), который принимает единственный делегат Action, и ожидающий должен вызывать этот делегат после завершения операции.