<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dapfor.Net Grid Blog &#187; CPU</title>
	<atom:link href="http://www.blog.dapfor.com/tag/cpu/feed" rel="self" type="application/rss+xml" />
	<link>http://www.blog.dapfor.com</link>
	<description>.Net Grid and MFC Grid</description>
	<lastBuildDate>Fri, 09 Sep 2016 05:40:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>.NetGrid v2.9.0 has been released. New features and bug fixes</title>
		<link>http://www.blog.dapfor.com/netgrid-v2-9-0-has-been-released-new-features-and-bug-fixes</link>
		<comments>http://www.blog.dapfor.com/netgrid-v2-9-0-has-been-released-new-features-and-bug-fixes#comments</comments>
		<pubDate>Wed, 05 Jun 2013 20:19:51 +0000</pubDate>
		<dc:creator>dapadm</dc:creator>
				<category><![CDATA[bug fixing]]></category>
		<category><![CDATA[new release]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.Net Grid features]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.blog.dapfor.com/?p=215</guid>
		<description><![CDATA[We are glad to introduce a new grid version with improved performance and stability. We have added dozens new tests to cover various grid functions. We want to thank our customers for their feedback on products and ease of use and critical comments that help us make our products best on the market. The following [...]]]></description>
			<content:encoded><![CDATA[<p>We are glad to introduce a new grid version with improved performance and stability. We have added dozens new tests to cover various grid functions. We want to thank our customers for their feedback on products and ease of use and critical comments that help us make our products best on the market.</p>
<p>The following features have been added:</p>
<ul>
<li>[NEW] Added column filter serialization</li>
<li>[NEW] Reengineered grid designer introducing intuitive and convenient user interface.</li>
<li>[NEW] Significantly improved grid performance with selection large data volumes.</li>
<li>[NEW] Overall performance improvement.</li>
</ul>
<p>The following bugs have been fixed:</p>
<ul>
<li>[BUG] Fixed an error with the grid not unsubscribing from objects with composite properties when objects are removed from the grid.</li>
<li>[BUG] Fixed an error with Dapfor.Net.dll not appearing in the list of available assemblies in Visual Studio.</li>
<li>[BUG] Fixed an error with Column.Appearance property hiding cell highlighting.</li>
<li>Minor bug fixes</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.dapfor.com/netgrid-v2-9-0-has-been-released-new-features-and-bug-fixes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Application.DoEvents() in real-time applications is dangerous!</title>
		<link>http://www.blog.dapfor.com/using-application-doevents-in-real-time-applications-is-dangerous</link>
		<comments>http://www.blog.dapfor.com/using-application-doevents-in-real-time-applications-is-dangerous#comments</comments>
		<pubDate>Tue, 06 Nov 2012 11:03:57 +0000</pubDate>
		<dc:creator>dapadm</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[DoEvents]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.blog.dapfor.com/?p=192</guid>
		<description><![CDATA[It has been numerously written that Application.DoEvents() method is not desirable, especially for high-performance applications. There are many reasons for this starting from message processing procedure and ending with non-evident problems with application response  to user activity and code execution. In most cases programmers use this method without thinking of consequences or its working principle. [...]]]></description>
			<content:encoded><![CDATA[<p>It has been numerously written that<strong> Application.DoEvents()</strong> method is not desirable, especially for high-performance applications. There are many reasons for this starting from message processing procedure and ending with non-evident problems with application response  to user activity and code execution.</p>
<p>In most cases programmers use this method without thinking of consequences or its working principle. <a href="http://msdn.microsoft.com/en-us//library/system.windows.forms.application.doevents.aspx">MSDN documentation</a> says that this method processes messages in queue and when there are no more messages it stops working and passes control to the next code.<br />
In simplified form this method looks as follows:<br />
<code><br />
NativeUnsafeMethods.MSG msg;<br />
while (PeekMessage(out msg))<br />
{<br />
TranslateMessage(ref msg);<br />
DispatchMessage(ref msg);<br />
}</code></p>
<p>However, we may wonder what happens when application is intensively rendering controls, synchronizing threads and performing other operations in GUI thread? In such situation message queue always contains messages that don’t let method finish its work. As the result, the end user won’t notice the difference in application behavior as<strong> Application.DoEvents()</strong> will process executing messages, including WM_PAINT messages, i.e. controls will be redrawn and the program will not slow down. However, code execution will stop on <strong>Application.DoEvents()</strong> method. If there are important operations after this method, they will not be executed until message queue is freed. We have often seen the situation when application was updating stock market prices and in times of high volatility prices were updated with noticeable delays!!!</p>
<p>A simple example of the problem is shown below. Demo application intensively synchronizes threads and paints data. Main GUI thread continuously processes messages (including synchronization messages and WM_PAINT messages). Clicking Start button calls Application.DoEvents() once, and in normal situation it should immediately return control to subsequent code. However, in this example the things are different! This method is followed by MessageBox.Show(…) that doesn’t display anything.<br />
If demo application is fully covered with any other window or collapsed in the taskbar, Windows stops sending WM_PAINT messages and as the result of it message queue becomes empty, <strong>Application.DoEvents()</strong> method stops and MessageBox.Show(…) is executed.</p>
<p><a href="http://www.blog.dapfor.com/using-application-doevents-in-real-time-applications-is-dangerous/doevents" rel="attachment wp-att-194"><img class="size-full wp-image-194 alignleft" title="DoEvents" src="http://www.blog.dapfor.com/wp-content/uploads/2012/11/DoEvents.png" alt="" width="505" height="311" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Download <a href="http://dapfor.com/downloads/net-suite-examples/DoEventsExample.zip">DoEventsExample.zip</a></p>
<p>Therefore, before using <strong>Application.DoEvents()</strong> programmers should look at application architecture and ask themselves whether this method is really necessary. If application code really requires <strong>Application.DoEvents()</strong>, we have added <strong>Dapfor.Net.Editors.MessageQueueHelper</strong> class starting from version 2.8.4. This class has similar behavior but it also supports maximum execution time limit. If there are no more messages in queue, <strong>MessageQueueHelper</strong> also stops and passes control to the subsequent code.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.dapfor.com/using-application-doevents-in-real-time-applications-is-dangerous/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NetGrid v2.8.4 has been released. Improvements when CPU is heavily loaded.</title>
		<link>http://www.blog.dapfor.com/netgrid-v2-8-4-has-been-released-improvements-when-cpu-is-heavily-loaded-2</link>
		<comments>http://www.blog.dapfor.com/netgrid-v2-8-4-has-been-released-improvements-when-cpu-is-heavily-loaded-2#comments</comments>
		<pubDate>Mon, 29 Oct 2012 22:59:48 +0000</pubDate>
		<dc:creator>dapadm</dc:creator>
				<category><![CDATA[bug fixing]]></category>
		<category><![CDATA[new release]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[editing]]></category>
		<category><![CDATA[improvements]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.blog.dapfor.com/?p=187</guid>
		<description><![CDATA[This version contains bug fixes and performance improvements. The following features have been added: [NEW] Greatly improved the reliability and responsiveness of the grid when the CPU is heavily loaded. The following bugs have been fixed: [BUG] Fixed a bug in the column configurator which in some cases does not allow reordering of visible columns. [...]]]></description>
			<content:encoded><![CDATA[<p>This version contains bug fixes and performance improvements.</p>
<p>The following features have been added:</p>
<ul>
<li>[NEW] Greatly improved the reliability and responsiveness of the grid when the CPU is heavily loaded.</li>
</ul>
<p>The following bugs have been fixed:</p>
<ul>
<li>[BUG] Fixed a bug in the column configurator which in some cases does not allow reordering of visible columns.</li>
<li>[BUG] Fixed a bug where merged columns were drawn with artifacts.</li>
<li>[BUG] Fixed a bug when the grid incorrectly draws cells if there are simultaneously visible grouped rows and child header.</li>
<li>[BUG] Fixed a bug when the grid incorrectly displays a vertical scrollbar if there are simultaneously visible grouped rows and child header.</li>
<li>Minor bug fixes</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.dapfor.com/netgrid-v2-8-4-has-been-released-improvements-when-cpu-is-heavily-loaded-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
