<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Peter Duniho&amp;#39;s C# blog</title><subtitle type="html">One man&amp;#39;s various musings in C#, occasionally useful to others.</subtitle><id>http://msmvps.com/blogs/duniho/atom.aspx</id><link rel="alternate" type="text/html" href="http://msmvps.com/blogs/duniho/default.aspx" /><link rel="self" type="application/atom+xml" href="http://msmvps.com/blogs/duniho/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.40407.4157">Community Server</generator><updated>2008-08-11T18:25:00Z</updated><entry><title>MSDN's canonical technique for using Control.Invoke is lame</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/09/12/msdn-s-canonical-technique-for-using-control-invoke-is-lame.aspx" /><id>/blogs/duniho/archive/2008/09/12/msdn-s-canonical-technique-for-using-control-invoke-is-lame.aspx</id><published>2008-09-12T18:36:00Z</published><updated>2008-09-12T18:36:00Z</updated><content type="html">I recommend not following MSDN&amp;#39;s promoted pattern for using the Control.Invoke method. It&amp;#39;s inefficient, and since C# 2.0, there&amp;#39;s been a better way....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/09/12/msdn-s-canonical-technique-for-using-control-invoke-is-lame.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647639" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="Forms" scheme="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx" /><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="concurrency" scheme="http://msmvps.com/blogs/duniho/archive/tags/concurrency/default.aspx" /></entry><entry><title>Form-closing race condition (part 2)</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/09/12/form-closing-race-condition-part-2.aspx" /><id>/blogs/duniho/archive/2008/09/12/form-closing-race-condition-part-2.aspx</id><published>2008-09-12T17:05:00Z</published><updated>2008-09-12T17:05:00Z</updated><content type="html">In this post, I continue by describing a technique for taking over the application shutdown process so that all your forms get to run their close-related code....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/09/12/form-closing-race-condition-part-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647636" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="Forms" scheme="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx" /><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="concurrency" scheme="http://msmvps.com/blogs/duniho/archive/tags/concurrency/default.aspx" /></entry><entry><title>Form-closing race condition (part 1)</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/09/12/form-closing-race-condition.aspx" /><id>/blogs/duniho/archive/2008/09/12/form-closing-race-condition.aspx</id><published>2008-09-12T16:44:00Z</published><updated>2008-09-12T16:44:00Z</updated><content type="html">In this post, I describe some approaches to dealing with the race condition that occurs when a thread that invokes code on a form instance is terminating at the same time that the form itself is being closed....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/09/12/form-closing-race-condition.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647567" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="Forms" scheme="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx" /><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="concurrency" scheme="http://msmvps.com/blogs/duniho/archive/tags/concurrency/default.aspx" /></entry><entry><title>Basic network programming in .NET (part 3)</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-3.aspx" /><id>/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-3.aspx</id><published>2008-08-28T16:34:00Z</published><updated>2008-08-28T16:34:00Z</updated><content type="html">An example of the most basic implementation one might find of a network application....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-3.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646043" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="networking" scheme="http://msmvps.com/blogs/duniho/archive/tags/networking/default.aspx" /><category term="basic" scheme="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx" /></entry><entry><title>Basic network programming in .NET (part 2)</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-2.aspx" /><id>/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-2.aspx</id><published>2008-08-28T07:59:00Z</published><updated>2008-08-28T07:59:00Z</updated><content type="html">A brief outline of the structure shared by practically all network applications....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/28/basic-network-programming-in-net-part-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646036" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="networking" scheme="http://msmvps.com/blogs/duniho/archive/tags/networking/default.aspx" /><category term="basic" scheme="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx" /></entry><entry><title>Basic network programming in .NET (part 1)</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/08/19/basic-network-programming-in-net.aspx" /><id>/blogs/duniho/archive/2008/08/19/basic-network-programming-in-net.aspx</id><published>2008-08-20T01:37:00Z</published><updated>2008-08-20T01:37:00Z</updated><content type="html">We start our journey through .NET network programming by looking at a couple of important network programming references, and covering a handful of the most important topics/issues that come up when learning to write network code....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/19/basic-network-programming-in-net.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1645113" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="networking" scheme="http://msmvps.com/blogs/duniho/archive/tags/networking/default.aspx" /><category term="basic" scheme="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx" /></entry><entry><title>Warming up - a Forms control for receiving text output (part 3)</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/08/17/warming-up-a-forms-control-for-receiving-text-output-part-3.aspx" /><id>/blogs/duniho/archive/2008/08/17/warming-up-a-forms-control-for-receiving-text-output-part-3.aspx</id><published>2008-08-18T02:48:00Z</published><updated>2008-08-18T02:48:00Z</updated><content type="html">Continuing the blogging warm-up, we look at the rendering-to-the-screen part of our SimpleConsole control class....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/17/warming-up-a-forms-control-for-receiving-text-output-part-3.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644898" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="Forms" scheme="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx" /><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="console" scheme="http://msmvps.com/blogs/duniho/archive/tags/console/default.aspx" /><category term="basic" scheme="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx" /></entry><entry><title>Warming up - a Forms control for receiving text output (part 2)</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-2.aspx" /><id>/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-2.aspx</id><published>2008-08-16T04:47:00Z</published><updated>2008-08-16T04:47:00Z</updated><content type="html">In this post, we see what the basic functionality and structure of the SimpleConsole class will be. Then we proceed to the implementation of one of two main features of the class: managing the text buffer....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644761" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="Forms" scheme="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx" /><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="console" scheme="http://msmvps.com/blogs/duniho/archive/tags/console/default.aspx" /><category term="basic" scheme="http://msmvps.com/blogs/duniho/archive/tags/basic/default.aspx" /></entry><entry><title>Warming up - a Forms control for receiving text output (part 1)</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-1.aspx" /><id>/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-1.aspx</id><published>2008-08-15T10:56:00Z</published><updated>2008-08-15T10:56:00Z</updated><content type="html">Network samples lead to text output leads to the SimpleConsole class, a lightweight custom Forms control for the purpose of providing a length-limited text display buffer...(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/15/warming-up-a-forms-control-for-receiving-text-output-part-1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644720" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="Forms" scheme="http://msmvps.com/blogs/duniho/archive/tags/Forms/default.aspx" /><category term="code" scheme="http://msmvps.com/blogs/duniho/archive/tags/code/default.aspx" /><category term="console" scheme="http://msmvps.com/blogs/duniho/archive/tags/console/default.aspx" /></entry><entry><title>Welcome!</title><link rel="alternate" type="text/html" href="/blogs/duniho/archive/2008/08/11/welcome.aspx" /><id>/blogs/duniho/archive/2008/08/11/welcome.aspx</id><published>2008-08-12T01:25:00Z</published><updated>2008-08-12T01:25:00Z</updated><content type="html">Every blog has to start somewhere. This blog starts here....(&lt;a href="http://msmvps.com/blogs/duniho/archive/2008/08/11/welcome.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644334" width="1" height="1"&gt;</content><author><name>duniho</name><uri>http://msmvps.com/members/duniho/default.aspx</uri></author><category term="welcome" scheme="http://msmvps.com/blogs/duniho/archive/tags/welcome/default.aspx" /><category term="metablog" scheme="http://msmvps.com/blogs/duniho/archive/tags/metablog/default.aspx" /></entry></feed>