may help you . All the code is executed in the UI thread in your case, because the Control.BeginInvoke method is not supposed to run a delegate in a background thread. To execute the code asynchronously, use the BeginInvoke method of a delegate. For example:
wish of those help I found the answer. The MeetingSearchResult object I was returning didn't have a property representing the column being sorted on, so that column wasn't included in the database query. Obvious I guess but had me baffled for ages. Also explains why sorting on other columns worked OK. +1 to @saamorim for acting as a fresh pair of eyes and pointing me at context.Database.Log which I wasn't aware of.