A BackgroundWorker for Avalon

I saw a post at the winfx.avalon newsgroup about the lack of support for a BackgroundWorker in Avalon (at least for v1.0). Since I need something like this for calling the Web Services asynchronously and then updating the Graphical User Interface, I just created a very simple one.

public class BackgroundWorker
{
  private UIContext _context;
  private UIContextOperationCallback _callback;   public BackgroundWorker(UIContextOperationCallback callback)
  {
    _context = UIContext.CurrentContext;
    _callback = callback;     Thread thread = new Thread(new ThreadStart(_run));
    thread.Start();
  }   private void _run()
  {
    _context.Invoke(_callback, null);
  }
}

For the benefit of those who haven't done any Windows GUI programming before, I have to say that a pattern like this is necessary because all the GUI elements must be updated by the same thread. The above makes sure that this happens.

UPDATE: Formatting fixed.