<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.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>The Case of the Intermittent (and Annoying) Explorer Hangs</title><link>http://blogs.technet.com/markrussinovich/archive/2005/08/28/the-case-of-the-intermittent-and-annoying-explorer-hangs.aspx</link><description>I have several computers in my home network where each one has a general designated purpose. For example, one is my game machine, another is my home development system, and a third is where I manage my pictures and home videos (and they all double as</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>tOMPSON&amp;#8217;s blog  &amp;raquo; Blog Archive   &amp;raquo; Problem of periodical Windows Explorer hangs</title><link>http://blogs.technet.com/markrussinovich/archive/2005/08/28/the-case-of-the-intermittent-and-annoying-explorer-hangs.aspx#1503816</link><pubDate>Wed, 11 Jul 2007 20:40:20 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1503816</guid><dc:creator>tOMPSON’s blog  » Blog Archive   » Problem of periodical Windows Explorer hangs</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://dertompson.com/index.php/2007/07/11/problem-of-periodical-windows-explorer-hangs/"&gt;http://dertompson.com/index.php/2007/07/11/problem-of-periodical-windows-explorer-hangs/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: The Case of the Intermittent (and Annoying) Explorer Hangs</title><link>http://blogs.technet.com/markrussinovich/archive/2005/08/28/the-case-of-the-intermittent-and-annoying-explorer-hangs.aspx#3293815</link><pubDate>Sat, 14 Nov 2009 04:03:39 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3293815</guid><dc:creator>Zapf Dingbat</dc:creator><description>&lt;p&gt;I don't normally put my 10 cents worth into blogs... cuz I'm too busy programming, but I have a piece of insider knowledge from some of the code I have been working on, and lets face it Mark Russinovich is one of the top programmers I have ever come across. &amp;nbsp;I have been building a 'Windows Explorer' style file browser - initially it was a dialog box for some of my other projects, and at some point of mental instability I decided to make it a fully fledged version (alot faster and cooler gui and... well I don't want to yank my own chain here) segway back into my observation - I have noticed the lack of threads used to render the shellfolder icons in windows explorer, this behavior can be observed or reproduced by opening a large directory in the list pane (ie 'C:\Windows\system32 or C:\Windows\i386) and then violently scrolling down to the bottom or scrolling around. &amp;nbsp;You will notice that the display will seize up momentarily as it tries to fill in the icons (this blocking is caused because it is on the main thread). &amp;nbsp;You should be aware that the listview is using callbacks to get its display data. I solved this problem by filling in the text data on the main thread and launching many threads in the callback proc to deal with the icons. &amp;nbsp;And voila the listview scrolls like a banshee no delays, way less clunky, way faster! The little icons filling themselves in in their own time (quite quickly with 8 threads nibbling at them) now all was fine and dandy until I realized that my prog was crashing quite often after I did this, and after some analysis I found that it was usually .msc files causing the crash (something to do with 16bit old crap), it was quite intermittent but was the cause. &amp;nbsp;I then tried to remedy this and found that if I put a mutex in SHGetFileInfo and the Ishellfolder GetIconOf functions that this problem went away. &amp;nbsp;This slowed down the rendering of the icons significantly because the mutex only lets the function occur in a serial manner (and this is the main an slowest function while retrieving icons) instead of happening in a threaded, overlapped manner. &amp;nbsp;So I have a hypotheses that MS in their ultimate wisdom never even bothered to thread these functions because they are not thread safe. &amp;nbsp; However they can be successfully threaded with the appropriate mutexes - which is still much faster and better. &amp;nbsp;BTW if you are interested windows explorer is filled with bugs, mem leaks, inconsistent behaviors, you can make it crash left right and center just by doing certain things - not just from malformed third party shell extensions. &amp;nbsp;A pretty poor production for the most important flagship product for the entire windows product line! Maybe windows should spend their time making what they have better and more efficient, and yes! debugging their bugs. Nah... why pull out the floorboards because their rotten when you can just nail some boards onto the side of the sh*t mansion on an angle and then paint them cool colors to make them look like they are OK.&lt;/p&gt;</description></item></channel></rss>