﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-改頭換面</title><link>http://www.cnblogs.com/HappyMan/</link><description>--重燃戰火</description><language>zh-cn</language><lastBuildDate>Tue, 02 Dec 2008 10:14:21 GMT</lastBuildDate><pubDate>Tue, 02 Dec 2008 10:14:21 GMT</pubDate><ttl>60</ttl><item><title>.net的異步調用</title><link>http://www.cnblogs.com/HappyMan/archive/2005/09/01/227975.html</link><dc:creator>HappyMan</dc:creator><author>HappyMan</author><pubDate>Thu, 01 Sep 2005 07:57:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyMan/archive/2005/09/01/227975.html</guid><wfw:comment>http://www.cnblogs.com/HappyMan/comments/227975.html</wfw:comment><comments>http://www.cnblogs.com/HappyMan/archive/2005/09/01/227975.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyMan/comments/commentRss/227975.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyMan/services/trackbacks/227975.html</trackback:ping><description><![CDATA[最近幾天因為要用到.net的異步，就上網找了找相關的資料。<BR>結果發現網上相關的資料好少，而且基本是以MSDN的這份文檔進行了實作： 
<DIV class=O style="mso-line-spacing: '80 0 0'; mso-margin-left-alt: 216; mso-char-wrap: 1; mso-kinsoku-overflow: 1" v:shape="_x0000_s1026"><SPAN lang=EN-US style="FONT-SIZE: 20pt; FONT-FAMILY: Tahoma; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Arial; mso-fareast-font-family: 新細明體; mso-fareast-language: ZH-CN; text-shadow: auto"><SPAN style="FONT-SIZE: 12pt"><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Tahoma; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Arial; mso-fareast-font-family: 新細明體; mso-fareast-language: ZH-CN; text-shadow: auto"><A href="http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconasynchronousprogrammingdesignpattern2.asp">http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconasynchronousprogrammingdesignpattern2</SPAN></SPAN><SPAN style="FONT-SIZE: 12pt">.asp</A></SPAN></SPAN></DIV>這本正常，然而我對其進行實作後，欲進一步了解異步調用時，卻發現無法再找到進一步的資訊。<BR>下面我也講講這幾天對.Net異步調用的心得：<BR><BR>一：異步調用：在.net裏進行異步調用的方法有 <BR>使用線程（Thread） 和 定義與調用方法具用相同簽名的委託進行調用(此時該委託會自動產生BeginInvoke()).<BR>因我只研究了後者，故下面的描述都是指以後者起始的異步調用。<BR>二：異步調用與被調用的方法無關，它不需要因為被異步調用而做任何特殊處理。它的決定權在於調用方。<BR>三：異步的執行與返回：異步調用使用BeginInvoke起始調用和以EndInvoke結束調用並取得返回值，其具體方法有4種：<BR>&nbsp;&nbsp;&nbsp; 1，直接在同步的某點調用異步的EndInvoke()阻塞方法<BR>&nbsp;&nbsp;&nbsp; 2，使用WaitHandle等待異步調用完成<BR>&nbsp;&nbsp;&nbsp; 3，使用輪詢異步調用完成<BR>&nbsp;&nbsp;&nbsp; 4，異步完成時執行回調方法通知完成<BR><BR>四：經過這兩天的調試後，我產生了一些疑惑：<BR>&nbsp;&nbsp;&nbsp; 1，我在MSDN裏看到這樣的段話：<SPAN style="COLOR: #ff00ff; BACKGROUND-COLOR: #c0c0c0">警告&nbsp;&nbsp; 始終在非同步調用完成後調用 EndInvoke。</SPAN><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此方法在MSDN上的描述是：<SPAN style="BACKGROUND-COLOR: #c0c0c0">检索由传递的 IAsyncResult 对象表示的异步操作的返回值。</SPAN><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可是如果我不需要在異步方法裏返回值時，應該就可以不需要吧？否則它就會造成&#8220;<SPAN style="BACKGROUND-COLOR: #c0c0c0">如果尚未完成异步操作，此函数将阻塞，直至结果可用。</SPAN>&#8221;<BR>&nbsp;&nbsp;&nbsp; 2，針對使用WaitHandle等待方法，我很疑惑下面這一段代碼中紅色標識的這句有什麼意義？<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 既然EndInvoke就會執行等待阻塞的動作，為什麼還要畫蛇添足，加上一個<SPAN style="COLOR: #0000ff">ar.AsyncWaitHandle.WaitOne()</SPAN>?<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG id=Codehighlighter1_23_601_Open_Image onclick="this.style.display='none'; Codehighlighter1_23_601_Open_Text.style.display='none'; Codehighlighter1_23_601_Closed_Image.style.display='inline'; Codehighlighter1_23_601_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_23_601_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_23_601_Closed_Text.style.display='none'; Codehighlighter1_23_601_Open_Image.style.display='inline'; Codehighlighter1_23_601_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;AsyncMain&nbsp;</SPAN><SPAN id=Codehighlighter1_23_601_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.cnblogs.com/Images/dot.gif"></SPAN><SPAN id=Codehighlighter1_23_601_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_61_599_Open_Image onclick="this.style.display='none'; Codehighlighter1_61_599_Open_Text.style.display='none'; Codehighlighter1_61_599_Closed_Image.style.display='inline'; Codehighlighter1_61_599_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_61_599_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_599_Closed_Text.style.display='none'; Codehighlighter1_61_599_Open_Image.style.display='inline'; Codehighlighter1_61_599_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;Main(</SPAN><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">[]&nbsp;args)&nbsp;</SPAN><SPAN id=Codehighlighter1_61_599_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.cnblogs.com/Images/dot.gif"></SPAN><SPAN id=Codehighlighter1_61_599_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;threadId;<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AsyncDemo&nbsp;ad&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;AsyncDemo();<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AsyncDelegate&nbsp;dlgt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;AsyncDelegate(ad.TestMethod);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IAsyncResult&nbsp;ar&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;dlgt.BeginInvoke(</SPAN><SPAN style="COLOR: #000000">3000</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000">&nbsp;threadId,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Main&nbsp;thread&nbsp;{0}&nbsp;does&nbsp;some&nbsp;work.</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AppDomain.GetCurrentThreadId());<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #ff0000">ar.AsyncWaitHandle.WaitOne();<BR></SPAN><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff"><SPAN style="COLOR: #ffff00"><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000">&nbsp;ret&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;<SPAN style="COLOR: #ffff00; BACKGROUND-COLOR: #008080">dlgt.EndInvoke</SPAN>(</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000">&nbsp;threadId,&nbsp;ar);<BR></SPAN></SPAN></SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_569_571_Open_Image onclick="this.style.display='none'; Codehighlighter1_569_571_Open_Text.style.display='none'; Codehighlighter1_569_571_Closed_Image.style.display='inline'; Codehighlighter1_569_571_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_569_571_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_569_571_Closed_Text.style.display='none'; Codehighlighter1_569_571_Open_Image.style.display='inline'; Codehighlighter1_569_571_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">The&nbsp;call&nbsp;executed&nbsp;on&nbsp;thread&nbsp;{0},&nbsp;with&nbsp;return&nbsp;value&nbsp;\</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN id=Codehighlighter1_569_571_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.cnblogs.com/Images/dot.gif"></SPAN><SPAN id=Codehighlighter1_569_571_Open_Text><SPAN style="COLOR: #000000">{</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">}</SPAN></SPAN><SPAN style="COLOR: #000000">\</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">.</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;threadId,&nbsp;ret);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV></DIV><BR>&nbsp;&nbsp;&nbsp; 3，有關回調，我在回調方法裏加了EndInvoke的方法，可是在執行時及偵錯時卻發現並未執行到這句代碼。如下程式，它在執行到<SPAN style="BACKGROUND-COLOR: #ccffff">藍色底色</SPAN>那句代碼後便結束了。除非我在<SPAN style="BACKGROUND-COLOR: #ccffff">藍色底色代碼</SPAN>處<SPAN style="COLOR: #000000">等待足夠異步方法運行完的時間，它才會進入到我的回調方法裏。這裏是否正常?</SPAN><BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;AsyncHandle(IAsyncResult&nbsp;iar)<BR><IMG id=Codehighlighter1_46_211_Open_Image onclick="this.style.display='none'; Codehighlighter1_46_211_Open_Text.style.display='none'; Codehighlighter1_46_211_Closed_Image.style.display='inline'; Codehighlighter1_46_211_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_46_211_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_46_211_Closed_Text.style.display='none'; Codehighlighter1_46_211_Open_Image.style.display='inline'; Codehighlighter1_46_211_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_46_211_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.cnblogs.com/Images/dot.gif"></SPAN><SPAN id=Codehighlighter1_46_211_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(iar.IsCompleted)<BR><IMG id=Codehighlighter1_74_207_Open_Image onclick="this.style.display='none'; Codehighlighter1_74_207_Open_Text.style.display='none'; Codehighlighter1_74_207_Closed_Image.style.display='inline'; Codehighlighter1_74_207_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_74_207_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_74_207_Closed_Text.style.display='none'; Codehighlighter1_74_207_Open_Image.style.display='inline'; Codehighlighter1_74_207_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_74_207_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.cnblogs.com/Images/dot.gif"></SPAN><SPAN id=Codehighlighter1_74_207_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Async&nbsp;Handle&nbsp;found&nbsp;the&nbsp;Async&nbsp;is&nbsp;end!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AsynCall&nbsp;ac</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">(AsynCall)iar.AsyncState;<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ac.EndInvoke(iar);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[STAThread]<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;Main()<BR><IMG id=Codehighlighter1_258_615_Open_Image onclick="this.style.display='none'; Codehighlighter1_258_615_Open_Text.style.display='none'; Codehighlighter1_258_615_Closed_Image.style.display='inline'; Codehighlighter1_258_615_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_258_615_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_258_615_Closed_Text.style.display='none'; Codehighlighter1_258_615_Open_Image.style.display='inline'; Codehighlighter1_258_615_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_258_615_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.cnblogs.com/Images/dot.gif"></SPAN><SPAN id=Codehighlighter1_258_615_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Async2&nbsp;x</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;Async2();<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Now&nbsp;is:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">System.DateTime.Now);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AsynCall&nbsp;ac</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;AsynCall(x.MyAsync);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AsyncCallback&nbsp;acb</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;AsyncCallback(x.AsyncHandle);</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">定義Handle</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IAsyncResult&nbsp;iar</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">ac.BeginInvoke(&nbsp;</SPAN><SPAN style="COLOR: #000000">6000</SPAN><SPAN style="COLOR: #000000">,acb,ac);</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">開始執行異步，並轉交Handle.</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.MyMethod1(</SPAN><SPAN style="COLOR: #000000">2000</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #ffff00; BACKGROUND-COLOR: #ccffff"><SPAN style="COLOR: #000000"><SPAN style="COLOR: #ffff00"><SPAN style="COLOR: #000000"><SPAN style="COLOR: #ffff00; BACKGROUND-COLOR: #ccffff"><SPAN style="COLOR: #000000">Console.WriteLine(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">--The&nbsp;Main&nbsp;Method&nbsp;was&nbsp;ended&nbsp;at:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">System.DateTime.Now);</SPAN></SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN></SPAN></SPAN></SPAN></SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV>
<P>以上看法或問題，歡迎大家進行討論。<BR>因學習時間尚短，且身邊資料不足，文中不對的地方，請大家多多PP！</P><img src ="http://www.cnblogs.com/HappyMan/aggbug/227975.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43760/" target="_blank">[新闻]谷歌李开复:我的传奇人生源于十句箴言</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>有沒有方法可以監測ASP.net運行各應用的詳細資料的軟件</title><link>http://www.cnblogs.com/HappyMan/archive/2005/08/09/210624.html</link><dc:creator>HappyMan</dc:creator><author>HappyMan</author><pubDate>Tue, 09 Aug 2005 03:02:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyMan/archive/2005/08/09/210624.html</guid><wfw:comment>http://www.cnblogs.com/HappyMan/comments/210624.html</wfw:comment><comments>http://www.cnblogs.com/HappyMan/archive/2005/08/09/210624.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyMan/comments/commentRss/210624.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyMan/services/trackbacks/210624.html</trackback:ping><description><![CDATA[<P>鬱悶！<BR>這幾天不知為什麼出現了好幾次ASP.net大量吃掉服務器內存的現象。<BR>想要分析亦無從下手！<BR><BR>不知大家有沒有什麼建議或可否推薦使用什麼監測軟件？<IMG src="http://www.cnblogs.com/Emoticons/emcrook.gif" align=absMiddle border=0><BR>另：我有一個疑點，也是最近一段時間，有時候會在編譯該應用時出現無法Copy參考的DLL的問題，我想會不會同此有關？<BR>但即使侞此，我又如何才可以查出具體是哪支程式占著資源不放？</P>
<P>&nbsp;因為這個，這兩天頭都撞大了...<IMG src="http://www.cnblogs.com/Emoticons/hitwall.gif" align=absMiddle border=0></P><img src ="http://www.cnblogs.com/HappyMan/aggbug/210624.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43759/" target="_blank">[新闻]Twitter杀手Pownce被收购 两周内关闭服务</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>急求關於Pdfizer轉檔PDF的中文問題的解決方案</title><link>http://www.cnblogs.com/HappyMan/archive/2005/06/02/166424.html</link><dc:creator>HappyMan</dc:creator><author>HappyMan</author><pubDate>Thu, 02 Jun 2005 00:07:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyMan/archive/2005/06/02/166424.html</guid><wfw:comment>http://www.cnblogs.com/HappyMan/comments/166424.html</wfw:comment><comments>http://www.cnblogs.com/HappyMan/archive/2005/06/02/166424.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyMan/comments/commentRss/166424.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyMan/services/trackbacks/166424.html</trackback:ping><description><![CDATA[<P>dudu，不好意思，因需求較急，暫先放首頁一天。<BR>----<BR>如題，因公司高層的特別需求，我急需一個可以把網頁內容（含圖片，鏈接）直接轉檔到PDF的免費控件。<BR>經google搜尋，我找到了開源的itextsharp及二次開發itextsharp的Pdfizer，因itextsharp較為復雜，故我選擇了易用的Pdfizer。起初我測試的是英文的內容，完全能達到我的要求，但後來我再測試中文時，卻發現完全不能使用，因為它完全不支持中文！！！</P>
<P>不知有誰使用過Pdfizer並解決中文問題的，請給一個提示好嗎！<BR>感激涕零！</P>
<P>&nbsp;</P><img src ="http://www.cnblogs.com/HappyMan/aggbug/166424.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43758/" target="_blank">[新闻]Live Search新增“即时返现”服务</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Javascript侦错手记</title><link>http://www.cnblogs.com/HappyMan/archive/2005/05/26/163152.html</link><dc:creator>HappyMan</dc:creator><author>HappyMan</author><pubDate>Thu, 26 May 2005 12:52:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyMan/archive/2005/05/26/163152.html</guid><wfw:comment>http://www.cnblogs.com/HappyMan/comments/163152.html</wfw:comment><comments>http://www.cnblogs.com/HappyMan/archive/2005/05/26/163152.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyMan/comments/commentRss/163152.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyMan/services/trackbacks/163152.html</trackback:ping><description><![CDATA[<P>决定该收起懒惰的心了<BR>今天一个同事问我一个奇怪的问题：一段javascript放在Function外可以正常的执行完，而放在一个function里由Button触发却总出错！<BR>我看了一下他的代码(如下代码为仿原代码制作，原代码非为textbox,而是一个不可视的activex的object)：</P>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">input&nbsp;type</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">text</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;id</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">txt01</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;value</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">0001</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">input&nbsp;type</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">text</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;id</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">txt02</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;value</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">0002</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">input&nbsp;type</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">button</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;value</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;onclick</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test()</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">script&nbsp;language</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">javascript</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">function&nbsp;test()</SPAN><SPAN style="COLOR: #008000"><BR>//</SPAN><SPAN style="COLOR: #008000">{</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;alert(document.all.txt01.value);<BR>&nbsp;&nbsp;&nbsp;document.write(document.all.txt01.value);<BR>&nbsp;&nbsp;&nbsp;alert(document.all.txt02.value);<BR>&nbsp;&nbsp;&nbsp;document.write(document.all.txt02.value);<BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">}</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">script</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN></DIV></DIV>
<P>按照他的方式执行了两次，果然加上上述的注释符时，运行正常；而取消上述注释时，就在alert(document.all.txt02.value)时，总提示document.all.txt02.value为空或不是对象。<BR>初时我也百思不得其解，甚至以为是那个ActiveX的object因为安全性，在读第二次时已经过期了，但我又想，如果是这样，那不加上Function为什么又正常呢？我一再地检查代码，就是不能发现问题。直到我忽然看到了"document.write"才似乎想起了什么，把所有的document.write屏蔽后，一切正常。<BR>原来一切都是document.write在搞鬼，如果当前页面已经load完成，它的执行会把网页第一次load的所有网页元件清理掉；而如果当前页面正在load中，则它的执行只会在当前load的代码后面增加内容。这就是上面的问题造成的原因。<BR></P><img src ="http://www.cnblogs.com/HappyMan/aggbug/163152.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43753/" target="_blank">[新闻]MySpace CEO：明年广告营收仍会增长</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>To dudu,發現博客園一個Bug</title><link>http://www.cnblogs.com/HappyMan/archive/2005/05/25/162151.html</link><dc:creator>HappyMan</dc:creator><author>HappyMan</author><pubDate>Wed, 25 May 2005 05:56:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyMan/archive/2005/05/25/162151.html</guid><wfw:comment>http://www.cnblogs.com/HappyMan/comments/162151.html</wfw:comment><comments>http://www.cnblogs.com/HappyMan/archive/2005/05/25/162151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyMan/comments/commentRss/162151.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyMan/services/trackbacks/162151.html</trackback:ping><description><![CDATA[<P>dudu,<BR>剛剛看excel的博客時，發現出現重復的博客標題，如下的"做一個聰明的項目參與者--制訂WBS清單"，並且在左邊的PM的統計也是正確的，三筆，而右邊卻出現了四筆資料。<BR>因不知應如何把這份消息通知你，故先放個首頁。你看完後可以把它刪了或拿掉。<BR><IMG src="http://www.cnblogs.com/images/cnblogs_com/happyman/Image00056.png" border=0></P><img src ="http://www.cnblogs.com/HappyMan/aggbug/162151.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43752/" target="_blank">[新闻]2日科技博客精选：Windows占有率首次跌破90%</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>今天，俺也博客一回</title><link>http://www.cnblogs.com/HappyMan/archive/2005/05/25/161890.html</link><dc:creator>HappyMan</dc:creator><author>HappyMan</author><pubDate>Wed, 25 May 2005 00:06:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyMan/archive/2005/05/25/161890.html</guid><wfw:comment>http://www.cnblogs.com/HappyMan/comments/161890.html</wfw:comment><comments>http://www.cnblogs.com/HappyMan/archive/2005/05/25/161890.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyMan/comments/commentRss/161890.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyMan/services/trackbacks/161890.html</trackback:ping><description><![CDATA[<P>看了那麼久的博客園，有時候也不禁會心癢癢的。朋友也都說，這年頭，沒有自已的博客，那你就落伍了！再想想也是，出來好歹也混了幾年，可還是每次一提筆就不想寫東西了，這終究不是個辦法。於是就硬著頭皮來申請了一個博客，每天不管有事沒事，都來記錄一下一天的心得吧，免得真的到了某天，然後很遺憾的說：曾經有過一種沖動，我沒有好好把握，如果上天能再給我一次沖動&#8230;</P>
<P>好了，也算是萬事開頭難，今天我既然有了開始，就要做到有始有終。</P>
<P>希望大家多多支持我！講得好時，多給幾朵花，講得不好時，也不要扔太多的西紅柿，據說，西紅柿這東西，吃多了對身體不好，大家不要隨身攜帶太多！&nbsp; <IMG src="http://www.cnblogs.com/Emoticons/emsmilep.gif" align=absMiddle border=0></P><img src ="http://www.cnblogs.com/HappyMan/aggbug/161890.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43752/" target="_blank">[新闻]2日科技博客精选：Windows占有率首次跌破90%</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>