Performing long running background computations using Idling event
We have started experimenting with performing long running computations in the background of Revit by using the Idling event, and breaking the work up into a queue of many small tasks. We have even built a small open-source library around it: https://github.com/ara3d/revit-background-processor.
Early experiments seem promising, but the real test will be when it is used by actual users in various tools and plug-ins. I can't tell yet how reliable the technique is when Revit has a lot of work to do, and whether it could cause a bad user experience.
We would like to hear from other people who have used this technique, or similar techniques, in the past to extract data from Revit, without blocking the UI. Specifically, do you know if this technique works well in practice? What other techniques could be used? What are the pros and cons?