A new Multithreaded Web Browser Sample shows a similar technique and code The first issue – the created thread will run continuously until the application shuts down, given the code in the sample.
The problem is that the Thread Start delegate used ends with running the Dispatcher.
However, doing this The MSDN Multiple Windows, Multiple Threads Sample* showed how to launch a new thread with a WPF Window, and will work in most cases.
The sample code (commented and slightly modified) works out to the following: This sample creates a thread, marks it as single threaded apartment state, and starts the Dispatcher on that thread.
The first step in solving this problem is to have the update to the grid's Item Source wait until the To List Async method finishes. To List Async() End Sub Assuming the time spent loading the second context doesn't wipe out your gains in responsiveness, this will solve your problem (and creating dedicated contexts might be the answer if your contexts are taking too long to load). But that doesn't mean you can't use asynchronous processing. NET Page object includes a Register Async Task method, and the .
That's easy to do: just insert the Await keyword in front of the LINQ statement that's retrieving the Customer objects: The Await keyword causes the . Alternatively, if the two methods are always used together, you could combine them into a single method: Public Async Sub Load Data() Dim ctx As New Adventure Works LTEntities Me. NET Framework provides the Page Async Task object: Together, they allow you to call an async method in a Web Form.
This is particularly nasty, as the code could easily work for most windows, but fail on others.
The problem is, at the point where the Window is constructed, there is no active Synchronization Context.
We're up to five lines of code, still half the size of the fluent code; and, for many readers, with substantial readability improvements.
But depending on the event, you might not even need to create a separate method. To List Async() End Sub While this asynchronous code is almost identical to the original synchronous code, asynchronous coding does have some special issues. To List Async() End Sub Private Async Sub Button_Click(sender As Object, e As Routed Event Args) Me.