async CollectionViewSource filtering?
<p>I got really big <code>ObservableCollection&lt;MyItem&gt;</code> and I need to provide user-friendly filtering on it. </p>

<pre><code>public static async Task RefilterViewAsync(this ItemsControl @this, Predicate&lt;object&gt; compareLogic)
{
    await Task.Run(
        () =&gt;
        {
            var collectionView = CollectionViewSource.GetDefaultView(@this.ItemsSource);
            if (collectionView.CanFilter)
            {
                collectionView.Filter = compareLogic;
            }
            else throw new InvalidOperationException("Filtering not supported...");
            collectionView.Refresh();
        });
}
</code></pre>

<p>..the problem is that the code above doesnt work for some reasons. Fitering on UI-thread takes around 1 minute. Any ideas how to implement async filtering, at least to be able display some "processing.." animation to help user overcome that? </p>