Posted By: keydet | Jan 24th, 2006 @ 2:54 PM | 31,168 Views | 6 Comments

Here's a quote from Chapter 6: Using Multiple Threads of the Smart Client Architecture and Design Guide:

"To maximize the responsiveness of your smart client applications, you need to carefully consider how and when to use multiple threads. Threads can significantly improve the usability and performance of your application, but they require very careful consideration when you determine how they will interact with the user interface."

.NET Framework 2.0 and the BackgroundWorker component to the rescue!  Marc Schweigert, Federal Developer Evangelist, shows you how easy it is to build a responsive multithreaded Smart Client application with Windows Forms 2.0 & the BackgroundWorker component.

Resources:

Federal Developer Blog:
http://blogs.msdn.com/federaldev/

BackgroundWorker Component Overview:
http://msdn2.microsoft.com/en-us/library/8xs8549b.aspx

Media Downloads:
Rating:
0
0
JohnAskew
JohnAskew
9 girl in pink sweater
Succint, valuable, and well presented.

Some may say that Channel 9 for them is all about "getting to know personalities at Microsoft". Well, I'll trade all of that for training.

This content is what Channel 9 offers me, and I thank you for it.

[6][A]
SlackmasterK
SlackmasterK
I write my OWN blogging engines
Very informative. This solved exactly the problem I was having, as I had never created a multithreaded app.  I appreciate the verbosity you went into to describe in detail how to implement and return event functionality as well.  Thanks!
Handy stuff.

Although I know it would be easy to do, it would have been nice had the progress bar been used to show database load progress as well.
guercheLE
guercheLE
guerchele
What I found interesting is that in the following statement there is no break instruction and the background worker breaks it whatsoever.

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    for (int i = 1; i <= 10; i++)
    {
        if (backgroundWorker1.CancellationPending)
        {
            e.Cancel = true;
        }
        else
        {
            backgroundWorker1.ReportProgress(i * 10);
            Thread.Sleep(1000);
        }
    }
}
tes
tes
Hi
I noticed that this video is no longer working on this site.  Is there anyway you can get this video to be functional again?
thanks
Microsoft Communities