I've trying to handle threads in C#, but i've occurred in a wierd exception I don't know how to resolve. I've got a method running by BackgroundWorker, in which there's this piece of code:

```
GridView gridView;
DataView dataView;

queryTable.GetViewAndDataView(out gridView, out dataView);

this.listView.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(
    delegate() {
        listViewView = gridView;                    
        listView.ItemsSource = dataView;
    }
));

```

GetViewAndDataView fills a gridView and dataView, while the delegate code sets the current listView. The using of Invoke is supposed not to raise exceptions, but when I try to run it, I obtain this: **The calling thread cannot access this object because a different thread owns it**.

Anyone knows of to handle such exception, or at least, how to disable the thread object owning?