VB Developers adjust as .NET puts on new threads
- By Jack Vaughan
[FEBRUARY 25, 2003/ADT'S PROGRAMMERS REPORT] - Threading often seems the game of C programmers, one in
which Visual Basic adherents are relegated to the sidelines. With .NET, that is
changing. This is good news and bad news, advises an application development
''There were some historical shortcomings with the [VB] tool. We really had no
ability to create multithreaded apps short of using convoluted methods,'' said VB
specialist Jon Rauschenberger, consultant at Clarity Consulting Inc. With the
enhanced version of VB now supporting .NET, the way to threads is readied.
But the power of the new Microsoft .NET platform, and related new tools, can
cut both ways, added Rauschenberger, who spoke on the topic at the recent
VSLive! Conference in San Francisco.
''It's a double-edged sword,'' said Rauschenberger. ''You can work with threads
with VB in .NET, but you need to be sure to understand how they work. And, for
first time in a while, developers can write stuff that works in quite a
different way than the developer intended.'' With the jerry-rigged workarounds
that VB adepts used to make multi-threaded apps in the past, the resulting
system ''might be slow, but it wouldn't break,'' he said.
Said Rauschenberger: ''VB developers come from a history where you don't have
to worry about how the plumbing [of the deployed application] works. The
downside was that you couldn't go in to spawn your own threads.'' And in the new
.NET world, ''it's a fairly steep learning curve to figure some of this stuff
out,'' he noted.
These issues may relate to larger, long-running questions of object-oriented
programming vs. non-object-oriented programming, or system design vs. line-level
''There are a lot of ways you can use threads within an application. If you
don't understand things like synchronization, or how the Windows message pump
works to paint forms and manage how the actual user interface works, it's very
easy to write applications that, at a minimum, crash or in a worst-case scenario
actually present inaccurate data to the user,'' Rauschenberger said. C++
developers have been dealing with this kind of thing for years, he added.
So what are some dos and don'ts, asked Programmers Report.
''With synchronization,'' said Rauschenberger, ''you now need to know what it
is, when you have to use it and how to implement it using the tools in Visual
The biggest thing to be aware of is that, with .NET, the framework will allow
you to update a form from a background thread. But in reality, said
Rauschenberger, that is something you do not want to do. ''That is because it can
cause your app to become unstable at some point,'' he explained.
Finally, Rauschenberger said, make sure you know systems thread pool.
''Understand what it is and how it works before you use it, as opposed to
spawning your own threads,'' he advised.
For other Programmers Report articles, please go to http://www.adtmag.com/article.asp?id=6265
Jack Vaughan is former Editor-at-Large at Application Development Trends magazine.