I would definitely run the filter in another thread, if it takes more than a fraction of a second. This will not make the filter run faster, but will simply keep the gui from 'freezing up' while the calculations are going on.