標籤:c# wince延時 outofmemory異常 wince排錯 捕捉異常
在Wince6.0的應用開發過程中,掌握一些使用的小技巧,必定會事半功倍
那麼,你做好心裡準備了嗎?3、2、1。
技巧一:我會告訴你你為Wince開發的程式可以在你的電腦上運行!
這個技巧的用途有兩個
1、測試程式能否達到預期效果
還記得我們上一篇文章在類比上用的小程式嗎?
我們現在PC上運行一下
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/44/55/wKiom1Pgtb_jBLadAADQXjEkUn4713.png" title="ce_skill.PNG" alt="wKiom1Pgtb_jBLadAADQXjEkUn4713.png" />
2、捕捉在Wince上不顯示的異常
有時候,在Wince上運行應用程式,即使出錯了也不會拋出異常,當這個時候我們只需要在電腦上運行程式便會捕捉到程式的異常,這對於我們排錯處理很有協助。
補充:這裡提醒一下,雖然說在PC運行正常的程式大部分能夠在CE上運行。但假如的程式加上了延時的話,這就不一定了。曾經因為程式需要,在程式中加了一個延時函數
private void delayTime(double secend){ DateTime tempTime = DateTime.Now; while(tempTime.AddSeconds(secend).CompareTo(DateTime.Now) > 0) Application.DoEvents();}這個函數有一定的弊端,導致了設定好讀寫器不能迴圈讀卡,在某種情況下會出現不讀卡的現象之後確定了是延時函數的問題,但在PC上運行時正常。之後採用了System.Threading.Thread.Sleep(1000);程式運行正常
技巧二、
在利用C#寫程式的時候,在進行部署時,有時會發現部署時出現如下的錯誤:
1、這時有個簡單易用的方法
開啟項目之後,在上面選項卡將會出現項目這一項,
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/44/56/wKioL1Pgvv-RSZ6SAABktmgtitw098.png" style="float:none;" title="ce_skill1_item.PNG" alt="wKioL1Pgvv-RSZ6SAABktmgtitw098.png" />
之後選擇“xxx屬性”(xxx表示你的項目名)
切換到裝置這一項,然後把“部署.NET Compact Framework的最新版本(包括Service Pack)”這一個勾選框的勾去掉。之後再部署就會成功了
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/44/55/wKiom1PgvebhUd0xAAA68WkMDAs557.png" title="ce_skill1.PNG" style="float:none;" alt="wKiom1PgvebhUd0xAAA68WkMDAs557.png" />
補充:一般來說,用這個方法便可以解決部署上的問題。我在開發應用的過程中遇到該問題採用這個方法基本沒有什麼問題。
2、下載一個補丁NETCFSetupv2.msi
《傳送門》
技巧三、
在利用C#寫程式的時候,程式在CE上運行時,可能拋出一個OutOfMemory這個異常
解決辦法:
很簡單,先產生可執行檔,然後到目錄下,把整個Debug檔案夾都拷進SD卡裡面(因為Debug檔案夾中可能包含程式所需要的類庫)
參考連結:
《傳送門一》
{傳送門二}
本文出自 “且行且欣賞” 部落格,請務必保留此出處http://skytina.blog.51cto.com/6834539/1536101