<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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>Happy Coding - All Comments</title><link>http://weblogs.asp.net/jeffreyzhao/default.aspx</link><description>Jeffrey Zhao, Microsoft MVP from China, enjoys programming in Microsoft platform every day.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>re: LINQ to SQL Extension: Batch Deletion with Lambda Expression</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2008/03/06/linq-to-sql-extension-batch-deletion-by-lambda-expression.aspx#7153571</link><pubDate>Thu, 23 Jul 2009 19:09:33 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7153571</guid><dc:creator>Thrishna</dc:creator><description>&lt;p&gt;How does this support using a Delete statement with an &amp;quot;IN&amp;quot; clause.&lt;/p&gt;
&lt;p&gt;Like: &amp;quot;DELETE FROM tblMyTable WHERE col1 IN (val1,val2, val3, val4)&amp;quot;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7153571" width="1" height="1"&gt;</description></item><item><title>re: Refresh the UpdatePanel using JavaScript Code</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2008/04/26/refresh-the-updatepanel-using-javascript-code.aspx#7074017</link><pubDate>Tue, 05 May 2009 14:51:05 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7074017</guid><dc:creator>atconway</dc:creator><description>&lt;p&gt;I think I found an explination of this exact issue best described on the following site:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://technicalsideofarati.blogspot.com/2007/04/simultaneous-calls-to-server-from.html"&gt;technicalsideofarati.blogspot.com/.../simultaneous-calls-to-server-from.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It seems the root technical cause is the SessionState which makes sense; session state takes a reader/writer lock and blocks concurrent requests from the same user (same session).&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://odetocode.com/Blogs/scott/archive/2006/05/20/3648.aspx"&gt;odetocode.com/.../3648.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If anybody would like to speak up on a good way of determining if a post back is in process and how to delay the second call enough time to let the 1st one complete, please let me know.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7074017" width="1" height="1"&gt;</description></item><item><title>re: Refresh the UpdatePanel using JavaScript Code</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2008/04/26/refresh-the-updatepanel-using-javascript-code.aspx#7073970</link><pubDate>Tue, 05 May 2009 14:23:45 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7073970</guid><dc:creator>atconway</dc:creator><description>&lt;p&gt;I have 2 page controls using setInterval and some JS to scroll some text. &amp;nbsp;Upon completion of the scrolling I use the code from this site to fire a server side hidden button event to update the scrolling text. &amp;nbsp;Everything works fine EXCEPT when both scrolling areas finish at the same or roughly the same time and both try to call the wired up event (each has its own button event) at the same time. &amp;nbsp;Only 1 server-side event gets fired (verified by breakpoints). &amp;nbsp;If the calls are offset and do not happen at the same time, no problem both fire ok. &amp;nbsp;It is only when they both fire at the same time or even roughly the same time. &amp;nbsp;I experimented with using timers to offset the calls, and made some other work-arounds to offset the calls as a temporary resolution.&lt;/p&gt;
&lt;p&gt;However, I would like a definitive explanation as to why if the doPostBack() call is made simultaneously with another doPostBack() call, why does only 1 of the server side events get fired? &amp;nbsp;Is there a better work around?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7073970" width="1" height="1"&gt;</description></item><item><title>re: Refresh the UpdatePanel using JavaScript Code</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2008/04/26/refresh-the-updatepanel-using-javascript-code.aspx#6998573</link><pubDate>Wed, 25 Mar 2009 06:32:26 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6998573</guid><dc:creator>Suyog Kale</dc:creator><description>&lt;p&gt;Hi Rahan,&lt;/p&gt;
&lt;p&gt;do you got any solution on your problem?&lt;/p&gt;
&lt;p&gt;i also facing same problem, i want to just update user control, but it reloading whole page..&lt;/p&gt;
&lt;p&gt;please let me know. &lt;/p&gt;
&lt;p&gt;Suyog Kale,&lt;/p&gt;
&lt;p&gt;+919767654573, Pune India&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6998573" width="1" height="1"&gt;</description></item><item><title>Fast Reflection Library</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2009/01/27/fast-reflection-library.aspx#6933795</link><pubDate>Sun, 01 Mar 2009 13:33:42 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6933795</guid><dc:creator>Jeffrey Zhao</dc:creator><description>&lt;p&gt;这是我在CodePlex上创建的一个项目，它的网址是&lt;a rel="nofollow" target="_new" href="http://www.codeplex.com/FastReflectionLib"&gt;www.codeplex.com/FastReflectionLib&lt;/a&gt;，使用Microsoft Public License (Ms-PL)，您可以随意在自己的产品中使用它的全部或部分代码。这个项目用到了我在《方法的直接调用，反射调用与Lambda表达式调用》和《这下没理由嫌Eval的性能差了吧？》两篇文章里用到的做法，并加以提炼和扩展发布的项目——随便搞搞，留个印记，也供以后参考。&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6933795" width="1" height="1"&gt;</description></item><item><title>re: Refresh the UpdatePanel using JavaScript Code</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2008/04/26/refresh-the-updatepanel-using-javascript-code.aspx#6895419</link><pubDate>Mon, 09 Feb 2009 05:55:07 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6895419</guid><dc:creator>Rahan</dc:creator><description>&lt;p&gt;as i mentioned above just i need to refresh this user control after adding this to master page, becasue i am facing problem in entire page refreshing... please if anyone of you aware how to resolve this???&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6895419" width="1" height="1"&gt;</description></item><item><title>re: Refresh the UpdatePanel using JavaScript Code</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2008/04/26/refresh-the-updatepanel-using-javascript-code.aspx#6895383</link><pubDate>Mon, 09 Feb 2009 04:53:17 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6895383</guid><dc:creator>Rahan</dc:creator><description>&lt;p&gt;Please find below my code lines:&lt;/p&gt;
&lt;p&gt;&amp;lt;%@ Control Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;UCFXRates.ascx.cs&amp;quot; Inherits=&amp;quot;UCFXRates&amp;quot; %&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;asp:Timer ID=&amp;quot;Timer1&amp;quot; OnTick=&amp;quot;Timer1_Tick&amp;quot; runat=&amp;quot;server&amp;quot; Interval=&amp;quot;100000&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/asp:Timer&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;asp:UpdatePanel ID=&amp;quot;UpdatePanel1&amp;quot; UpdateMode=&amp;quot;Conditional&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;&amp;lt;contenttemplate&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;table id=&amp;quot;MainTable&amp;quot; cellSpacing=&amp;quot;0&amp;quot; cellPadding=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot; border=&amp;quot;0&amp;quot; runat=server&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td align=center&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;asp:Label ID=&amp;quot;Label1&amp;quot; runat=&amp;quot;server&amp;quot; Font-Bold=&amp;quot;True&amp;quot; Font-Names=&amp;quot;Arial&amp;quot; Font-Size=&amp;quot;11px&amp;quot;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Font-Underline=&amp;quot;True&amp;quot; ForeColor=&amp;quot;Maroon&amp;quot; Height=&amp;quot;10px&amp;quot; Width=&amp;quot;106px&amp;quot; Text=&amp;quot;Current FX Rates&amp;quot;&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;asp:GridView&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ID=&amp;quot;CurrencyGrid&amp;quot; runat=&amp;quot;server&amp;quot; BackColor=&amp;quot;Transparent&amp;quot; BorderColor=&amp;quot;DodgerBlue&amp;quot; BorderStyle=&amp;quot;Double&amp;quot;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BorderWidth=&amp;quot;1px&amp;quot; CellPadding=&amp;quot;4&amp;quot; GridLines=&amp;quot;Horizontal&amp;quot; Height=&amp;quot;227px&amp;quot; AutoGenerateColumns=false&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;FooterStyle BackColor=&amp;quot;White&amp;quot; ForeColor=&amp;quot;#333333&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;RowStyle BackColor=&amp;quot;Transparent&amp;quot; ForeColor=&amp;quot;#333333&amp;quot; BorderColor=&amp;quot;Transparent&amp;quot; BorderWidth=&amp;quot;1px&amp;quot; Height=6px/&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Columns&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;asp:BoundField DataField=&amp;quot;FX_Curr&amp;quot; HeaderText=&amp;quot;Curr&amp;quot; &amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ItemStyle Width=&amp;quot;30%&amp;quot; HorizontalAlign=center/&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/asp:BoundField&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;asp:BoundField DataField=&amp;quot;FX_Curr_Against&amp;quot; HeaderText=&amp;quot;Curr_Against&amp;quot; &amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ItemStyle Width=&amp;quot;30%&amp;quot; HorizontalAlign=center/&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/asp:BoundField&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;asp:BoundField DataField=&amp;quot;ex_rate&amp;quot; HeaderText=&amp;quot;EX Rate&amp;quot; &amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ItemStyle Width=&amp;quot;30%&amp;quot; HorizontalAlign=right/&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/asp:BoundField&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Columns&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;SelectedRowStyle BackColor=&amp;quot;#339966&amp;quot; Font-Bold=&amp;quot;True&amp;quot; ForeColor=&amp;quot;White&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;PagerStyle BackColor=&amp;quot;#336666&amp;quot; ForeColor=&amp;quot;White&amp;quot; HorizontalAlign=&amp;quot;Center&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;HeaderStyle BackColor=&amp;quot;RoyalBlue&amp;quot; Font-Bold=&amp;quot;True&amp;quot; ForeColor=&amp;quot;White&amp;quot; BorderColor=&amp;quot;Blue&amp;quot; Height=5px/&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/asp:GridView&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/table&amp;gt; &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;&amp;lt;/contenttemplate&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;&amp;lt;triggers&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;asp:AsyncPostBackTrigger ControlID=&amp;quot;Timer1&amp;quot; EventName=&amp;quot;Tick&amp;quot;&amp;gt;&amp;lt;/asp:AsyncPostBackTrigger&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;&amp;lt;/triggers&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/asp:UpdatePanel&amp;gt;&lt;/p&gt;
&lt;p&gt;i am using it in a user control which attached in master page to display FX rates, this making entire page to do postback, what i need is to refresh only this control without effecting entire page, any idea?&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6895383" width="1" height="1"&gt;</description></item><item><title>为ASP.NET MVC扩展异步Action功能（上）</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2009/01/30/extend-asp-net-mvc-for-asynchronous-action.aspx#6879037</link><pubDate>Tue, 03 Feb 2009 17:29:38 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6879037</guid><dc:creator>Jeffrey Zhao</dc:creator><description>&lt;p&gt;异步请求处理是ASP.NET 2.0中引入的高级特性，它依托IO Complete Port，对于提高IO密集型应用程序的吞吐量非常重要（详见原理描述和性能测试）。但是目前ASP.NET MVC框架缺少异步Action功能，这也就是老赵经常挂在嘴边的那个“目前ASP.NET MVC所缺少的非常重要的功能”。我在春节休假期间仔细思考了一下这方面的问题，得出了一个相对不错的扩展：完整，方便，并且非常轻巧——核心逻辑代码只有200行左右，这意味着绝大部分功能将会委托给框架中现成的内容，确保了扩展的稳定&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6879037" width="1" height="1"&gt;</description></item><item><title>为ASP.NET MVC扩展异步Action功能（下）</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2009/01/30/extend-asp-net-mvc-for-asynchronous-action.aspx#6879019</link><pubDate>Tue, 03 Feb 2009 17:00:03 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6879019</guid><dc:creator>Jeffrey Zhao</dc:creator><description>&lt;p&gt;续上篇：异步请求处理是ASP.NET 2.0中引入的高级特性，它依托IO Complete Port，对于提高IO密集型应用程序的吞吐量非常重要（详见原理描述和性能测试）。但是目前ASP.NET MVC框架缺少异步Action功能，这也就是老赵经常挂在嘴边的那个“目前ASP.NET MVC所缺少的非常重要的功能”。我在春节休假期间仔细思考了一下这方面的问题，得出了一个相对不错的扩展：完整，方便，并且非常轻巧——核心逻辑代码只有200行左右，这意味着绝大部分功能将会委托给框架中现成的内容，确保了扩展的稳定&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6879019" width="1" height="1"&gt;</description></item><item><title>ASP.NET MVC Archived Blog Posts, Page 1</title><link>http://weblogs.asp.net/jeffreyzhao/archive/2009/01/30/extend-asp-net-mvc-for-asynchronous-action.aspx#6873960</link><pubDate>Mon, 02 Feb 2009 03:56:40 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6873960</guid><dc:creator>ASP.NET MVC Archived Blog Posts, Page 1</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;ASP.NET MVC Archived Blog Posts, Page 1&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6873960" width="1" height="1"&gt;</description></item></channel></rss>