<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ?WP7程序的生命周期如下圖所示: ![](https://box.kancloud.cn/2016-04-27_57205d99b226f.jpg) 休眠狀態和墓碑狀態這兩個狀態會比較容易讓人混淆的,休眠狀態時,程序停止運行,但不同的是此時整個進程還是存在于內存中。當恢復這個程序時,就不需要創建一個新的實例。這樣就加快了程序恢復和切換的速度,并且從休眠狀態恢復時我們不需要去恢復墓碑數據。一般情況下點擊home鍵,程序會進入休眠狀態,當前臺程序在運行過程中,內存不足或者不足以讓程序流暢運行時,系統會執行一些操作來釋放內存,此時程序就可能從休眠狀態變換為的墓碑狀態。一個程序進入到墓碑狀態時,其進程被終止掉,但是程序的回退棧中的信息,以及我們保存的一些信息會保留在內存中。 程序恢復時會觸發Application類中的Activated 事件,我們可以通過檢查IsApplicationInstancePreserved參數來判斷程序是從休眠狀態還是墓碑狀態返回的,在此方法中我們可以用來恢復之前在Deactivated事件中保存的數據。 處理的代碼如下: ~~~ private void Application_Activated(object sender, ActivatedEventArgs e) { if (e.IsApplicationInstancePreserved) { //從休眠狀態恢復 } else { //從墓碑狀態恢復 //這時候程序在內存中的信息已經被清除掉了,需要在這里處理如何恢復你之前的數據 } } ~~~ ? 調試程序墓碑狀態的恢復可以通過在vs上設置來實現這一種模擬的效果,設置如下: ![](https://box.kancloud.cn/2016-04-27_57205d99cfae8.jpg) ? ????? 從休眠狀態恢復到程序的時候,如果這時候我們在程序中正在發送http請求的話,有可能這個請求會被取消掉,這時候我們需要在程序中來捕獲這個異常并進行處理。處理代碼如下: ? ~~~ private void GetSomeResponse(IAsyncResult MyResultAsync) { HttpWebRequest request = (HttpWebRequest)MyResultAsync.AsyncState; try { HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(MyResultAsync); if (response.StatusCode == HttpStatusCode.OK && response.ContentLength > 0) { using (StreamReader sr = new StreamReader(response.GetResponseStream())) { //…… } } } catch (WebException e) { if(e.Status == WebExceptionStatus.RequestCanceled) //這里有可能就是從休眠和墓碑狀態返回來的 //可以在這這里處理休眠和墓碑狀態的恢復,例如重新發送http請求…… else { //其他的異常 using (HttpWebResponse response = (HttpWebResponse)e.Response) { MessageBox.Show(response.StatusCode.ToString()); } } } } ~~~ ? ? 轉載自:[http://www.cnblogs.com/linzheng/archive/2012/01/17/2324991.html](http://www.cnblogs.com/linzheng/archive/2012/01/17/2324991.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看