<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://scrum.codebetter.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Patrick Smacchia [MVP C#] - All Comments</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>famous lies</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177823</link><pubDate>Wed, 07 May 2008 17:43:54 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177823</guid><dc:creator>famous lies</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;famous lies&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177823" width="1" height="1"&gt;</description></item><item><title>Command-Query Separation and Immutable Builders</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177754</link><pubDate>Tue, 06 May 2008 22:24:07 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177754</guid><dc:creator>Matthew Podwysocki</dc:creator><description>&lt;p&gt;In one of my previous posts about Command-Query Separation (CQS) and side effecting functions being code&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177754" width="1" height="1"&gt;</description></item><item><title>Command-Query Separation and Immutable Builders</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177749</link><pubDate>Tue, 06 May 2008 21:00:37 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177749</guid><dc:creator>Matthew Podwysocki's Blog</dc:creator><description>&lt;p&gt;In one of my previous posts about Command-Query Separation (CQS) and side effecting functions being code&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177749" width="1" height="1"&gt;</description></item><item><title>Command-Query Separation and Immutable Builders</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177747</link><pubDate>Tue, 06 May 2008 20:58:56 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177747</guid><dc:creator>Matthew Podwysocki</dc:creator><description>&lt;p&gt;In one of my previous posts about Command-Query Separation (CQS) and side effecting functions being code&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177747" width="1" height="1"&gt;</description></item><item><title>re: Manage states in a multi-threaded environment without the synchronization pain</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177728</link><pubDate>Tue, 06 May 2008 08:09:07 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177728</guid><dc:creator>Patrick Smacchia</dc:creator><description>&lt;p&gt;Jared,&lt;/p&gt;
&lt;p&gt;I think there is a misunderstanding. The Debug.Assert(...) you are referencing is here to enforce the object / resource affinity and not to detect a race condition.&lt;/p&gt;
&lt;p&gt;I agree that race conditions problems sometime don't appear in release mode and thus, contract with Debug.Assert(...) can sometime be not helpful. Also, a shared state can be sane during the execution of Debug.Assert(..) and corrupted just during the execution of the next instruction. &lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177728" width="1" height="1"&gt;</description></item><item><title>Reflective Perspective - Chris Alcock  &amp;raquo; The Morning Brew #87</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177727</link><pubDate>Tue, 06 May 2008 07:23:38 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177727</guid><dc:creator>Reflective Perspective - Chris Alcock  » The Morning Brew #87</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Reflective Perspective - Chris Alcock &amp;nbsp;&amp;amp;raquo; The Morning Brew #87&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177727" width="1" height="1"&gt;</description></item><item><title>h 264 explained</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/03/19/number-of-types-in-the-net-framework-2.aspx#177723</link><pubDate>Tue, 06 May 2008 06:50:53 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177723</guid><dc:creator>h 264 explained</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;h 264 explained&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177723" width="1" height="1"&gt;</description></item><item><title>re: Manage states in a multi-threaded environment without the synchronization pain</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177720</link><pubDate>Tue, 06 May 2008 04:12:53 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177720</guid><dc:creator>Jared Parsons</dc:creator><description>&lt;p&gt;Good post but one point I don't agree with.&lt;/p&gt;
&lt;p&gt;Debug.Assert( MyHelperPlumbing.CurrentThreadIsInitialThread() );&lt;/p&gt;
&lt;p&gt;A debug assert is great but ideally this should be a retail contract vs. a debug assert. &amp;nbsp;As you pointed out debugging race conditions is a nightmare at best. &amp;nbsp;This type of check can be invaluable when tracking down a race condition bug. &amp;nbsp;Unfortunately there are many race conditions that just don't repro in debug code. &amp;nbsp;Moving this to a retail contract will help ensure that 1) your code fails and fails fast and 2) you learn about the race condition at the earliest possible moment.&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177720" width="1" height="1"&gt;</description></item><item><title>re: Manage states in a multi-threaded environment without the synchronization pain</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177674</link><pubDate>Mon, 05 May 2008 12:38:42 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177674</guid><dc:creator>Granville Barnett</dc:creator><description>&lt;p&gt;Interesting.&lt;/p&gt;
&lt;p&gt;I have always been a fan of the immutable approach despite its larger memory demand - but like you say the cost of synchronisation is steep.&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177674" width="1" height="1"&gt;</description></item><item><title>Dew Drop - May 5, 2008 | Alvin Ashcraft's Morning Dew</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/05/05/manage-states-in-a-multi-threaded-environment-without-the-synchronization-pain.aspx#177673</link><pubDate>Mon, 05 May 2008 12:32:44 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177673</guid><dc:creator>Dew Drop - May 5, 2008 | Alvin Ashcraft's Morning Dew</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Dew Drop - May 5, 2008 | Alvin Ashcraft's Morning Dew&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177673" width="1" height="1"&gt;</description></item><item><title>New and Notable 237</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/04/28/diff-tools-to-see-source-files-changes.aspx#177666</link><pubDate>Mon, 05 May 2008 11:37:42 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177666</guid><dc:creator>Sam Gentile</dc:creator><description>&lt;p&gt;Identity Management/OpenID/Security/P2P/WCF Scott Hanselman has a great post on OpenId P2P and WCF: Some&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177666" width="1" height="1"&gt;</description></item><item><title>Link Listing - May 4, 2008</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/04/28/ui-matter-make-the-simple-things-simple-and-hard-things-possible.aspx#177663</link><pubDate>Mon, 05 May 2008 09:31:14 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177663</guid><dc:creator>Christopher Steen</dc:creator><description>&lt;p&gt;ASP.NET ASP.NET &amp;quot;Head&amp;quot; Rendering Issues! [Via: jlynch ] WPF Cool WPF MulticolumnTreeview [Via: DotNet...&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177663" width="1" height="1"&gt;</description></item><item><title>Link Listing - May 4, 2008</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/04/28/ui-matter-make-the-simple-things-simple-and-hard-things-possible.aspx#177660</link><pubDate>Mon, 05 May 2008 09:30:51 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177660</guid><dc:creator>Christopher Steen</dc:creator><description>&lt;p&gt;Link Listing - May 4, 2008&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177660" width="1" height="1"&gt;</description></item><item><title>Manage states in a multi-threaded environment without the synchronization pain</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/01/13/immutable-types-understand-them-and-use-them.aspx#177651</link><pubDate>Mon, 05 May 2008 05:31:13 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177651</guid><dc:creator>Patrick Smacchia [MVP C#]</dc:creator><description>&lt;p&gt;I see 4 common ways to deal with states in a multi-threaded environment: Immutable objects : The idea&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177651" width="1" height="1"&gt;</description></item><item><title>760 com</title><link>http://scrum.codebetter.com/blogs/patricksmacchia/archive/2008/03/19/number-of-types-in-the-net-framework-2.aspx#177624</link><pubDate>Sat, 03 May 2008 19:38:10 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177624</guid><dc:creator>760 com</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;760 com&lt;/p&gt;
&lt;img src="http://scrum.codebetter.com/aggbug.aspx?PostID=177624" width="1" height="1"&gt;</description></item></channel></rss>