目前日期文章:200809 (12)

瀏覽方式: 標題列表 簡短摘要

這家「梨子咖啡館」是不是我的第一次來,上次我們來是來吃下午茶,真是不錯吃,加上本人對豐原夜市興趣缺缺,晚上就來吃吃看餐點如何摟。店裡的擺設裝潢以綠白色系為主,相當明亮簡潔,加上店面不小,是有些商業咖啡館,如「真鍋」的感覺。店內提供書報雜誌,可以讓客人待一下午享受休假的清閒,我剛好看到店員剛把蘋果日報放回架上,就拿來看看有什麼有趣的;此外某些座位也提供電源插座,對於喜歡隨處工作的SOHO族真是一大福音。

 

我們運氣算是不錯,來兩次都還有位置,但過我們坐下不久很快就客滿了,所以建議要來梨子咖啡消費的話,尤其希望有電源插座的座位,最好是先訂個位的,免的到時後影響原先的計劃。

 

我們這次點的是「白蘑菇雞肉義大利麵」和「義式迷迭香烤嫩雞」,因為本人對烤雞有幾分愛好,看到烤嫩雞就流口水。果然! 真的很不錯吃,雞腿去骨處理後,再與迷迭香一起烘烤的味道,吃起來十分入味,很嫩很好吃。烤雞腿下是擺些水果,減低嫩雞的油膩感,整體而言十分推薦。

傑克鼠 發表在 痞客邦 PIXNET 留言(0) 人氣()

東豐綠色走廊是一段從豐原、石岡至東勢三個鄉鎮的自行車專用道,全長約12公里,原本是台鐵東勢支線,但至民國八十年八月三十一日開出最後一班列車後漸漸荒廢。不過,經由地方的努力,將之改造成封閉的自行車專用道、佈置規劃兩側的商家,現在變成假日休閒的好地方。要到此處單車休閒,可以至朴子街或從石岡水壩入口處,兩側都有不少出租自行車、協力車的商家提供裝備與協助,可以先至網路上尋找打折的優待券每台車還可以省個三五十塊。

我們這次出發十分倉促,而且時間也有點晚了,怕太陽西下騎車不方便,因此就隨意找一家自行車店就租了,好把握時間。車道沿途直緩坡、榕樹樟樹等花草夾道而植,遠離城市的感覺,十分輕鬆愉快,專用道上禁止汽機車進入,可以安心騎乘,景點多集中在石岡附近,只是我們這趟有點懶散,享受騎自行車的心情,所以拍照就...有點偷懶:D。

至從國中畢業就沒再騎過自行車,算算也十幾年了,一開始騎不太順腳,小擔心會影響其他騎士,不過還好,沒兩下就騎順了,全程騎完來回大約兩小時左右,由於我們騎到梅子鐵橋的時候天色已暗,所以就此打住折返,因此我們來回約一小時半。

傑克鼠 發表在 痞客邦 PIXNET 留言(0) 人氣()

一般錯誤的發生通常是在程式執行下,很容易在Debug-Mode或用Try Catch抓出,但這個Exception發生的時機與一般不同,並非出現在某行指令執行,因此光只是在事件or方法中用Try Catch包死死就可以抓出皮漏,至少在我發生的時機,完全無法取得錯誤資訊,害我被這個可惡的Bug攪和了一整天,好不容易才找到原因。
稍為描述我遇到這個Exception,由於是在WinCE環境下發生,當下沒有抓圖軟體可以用,完整的錯誤如下:

Fatal Application Error
Application TD_Control.exe has performed an illegal operation and will be shut down.

傑克鼠 發表在 痞客邦 PIXNET 留言(2) 人氣()

當多個執行緒在共用變數的時候,首要小心遇到死結問題,基本發生原因為其一執行緒Lock住變數,導致其他執行緒無窮境的等待,想起來似乎不容易發生,確實當整個程式只共用一組變數,這種問題很容易避免,但若在同一時間內到兩個以上的變數,這種死結是很容易發生的,以下簡單的範例 。

範例:

下兩個執行緒的程式碼,其中含有兩個將共用的物件 Object_A 和 Object_B:

 

Thread 1

傑克鼠 發表在 痞客邦 PIXNET 留言(1) 人氣()

連接至WinCE偵錯方法:

WinCE設備的設定

  1. 到安裝VS.NET的電腦中的 C:\Program Files\Common Files\microsoft shared\CoreCon\1.0\Target\wce400 裡面,選擇你用的CPU,如x86,到該資料夾裡面,將相關檔案複製一份到WinCE裝置任意資料夾下。
  2. 開啟你的Windows CE裝置,用「檔案總管」到複製檔案的地方,先執行"ConmanClient2.exe",之後執行"CMAccept.exe",這兩個直行後都是沒有介面會跑出來的,所以確定有去執行它就可以了。

 

VS.NET的設定

  1. 到VS2005功能表 「工具」→「選項」後,展開「裝置工具」的節點,選擇裝置,在右邊烈表找到Windows CE裝置,之後選擇「屬性」,在傳輸部分是選擇「TCP連接傳輸」,點擊畫面右邊的一個「設定」按鈕,將「裝置IP位址」設定為「使用特定IP位址」,並在下方設定你的裝置IP。
  2. 在3分鐘之內,從開發電腦的VS.NET開始偵錯,會出現選項,選擇"Windows CE 裝置",過一下子你會看到VS.NET的StatusBar會顯示在部屬的物件,如.NET CF等等,完成之後就可以遠端偵錯了。

傑克鼠 發表在 痞客邦 PIXNET 留言(0) 人氣()

最近敝人在WinCE-based上開發的模組越來越龐大,另一方面是IO處理頻繁,執行一兩天就會因資源不足導致Shutdown。沒錯,資源對於WinCE而言一直都是相當棘手的問題,畢竟WinCE的記憶體和虛擬記憶體空間都不像桌上型電腦龐大,可以想怎麼用就怎麼用。因此,當我們針對WinCE模組設計時,除了程式資源分配盡量優化外,更重要的是需考慮其模組資源上的使用與釋放,如此的系統才能經的起長時間的考驗。以下是網路一篇文章,我覺得很淺顯易懂,在此就暫時引用一下這位高手的文獻,供大家參考:

 

(作者:史帝芬)


    .Net framework和Java VM一樣針對一般資源會自動回收,對於

傑克鼠 發表在 痞客邦 PIXNET 留言(0) 人氣()

這篇是生活網看到的,我是覺得有些觀念滿值得彼此學習的
就轉貼一下摟:


你發覺到了嗎?
愛的感覺,總是在一開始覺得很甜蜜,

傑克鼠 發表在 痞客邦 PIXNET 留言(2) 人氣()

這兩天為了替同事上課,整理一些基礎的組合語言資料,本來想說用google大神剪剪貼貼就搞定,但發現一件十分有趣的事,就是這lea與mov兩個指令,似乎都說是「近似」的指令,讓人非常傻眼,還很少人更正,是這種低級語言....不不低階語言已經乏人問津了還是忽視,反正我也在整理資料,順便寫一下,這兩個天壤之別的指令到底差在哪裡。

  • Lea傳遞變數位置
  • Mov傳遞變數數值

學過C++的,應該很容易了解吧~~就是指指標的 *X1 語 &X1。我也很納悶為什麼那麼多人會說兩者差不多,我想,可能為誤會的原因應該是組語「字串」傳遞所害的,舉例來講:

lpCaption="Caption"
lpText="Hello World!"

_asm

傑克鼠 發表在 痞客邦 PIXNET 留言(1) 人氣()

 

Sub WriteBit(ByRef Data As byte,ByVal BitIndex As Integer, ByVal NewBit As Boolean)

If NewBit = True Then
Data = Data And Math.Pow(2, BitIndex)
Else

傑克鼠 發表在 痞客邦 PIXNET 留言(3) 人氣()

WinCE.NET兩個重要函數之一Coredll.dll,為方便查詢將清單列於此: 

  1 SystemStarted  
  2 InitializeCriticalSection  
  3 DeleteCriticalSection  
  4 EnterCriticalSection  

傑克鼠 發表在 痞客邦 PIXNET 留言(0) 人氣()

WinCE系統若想要重新啟動,沒有.NET的Managed函數可用,須倚靠 Coredll.dll的KernelIoControl完成,以下是用Managed包裝後的重啟函數,使用方法很簡單,直接呼叫ResetSystem()即可:

Private Const FILE_DEVICE_HAL As Integer = &H101

Private Const METHOD_BUFFERED As Integer = 0
Private Const FILE_ANY_ACCESS As Integer = 0

傑克鼠 發表在 痞客邦 PIXNET 留言(0) 人氣()

多執行緒(MultiThread)是系統效能的強力工具,可以將原本低效率的程式以分工的方式提升數倍,對於核心開發的工作,如WinCE,多執行緒變成不可不熟悉的技術,例如處理IO,當大量資料進入系統的時候,總不能讓User看到系統發呆的難看景象吧~那誰要買我們的系統呢?

還好,微軟強大的軟體工程師幫你簡化的這方面的問題,對於多執行緒的開發,兩行指令就能處置,當然,除了「開線」外,其他還有很多必須知道的事,例如非同步執行緒的資料同步問題、各執行緒與UI之間的溝通等等,在此先稍微開場,如何開多線。

標準的執行緒開啟:

Dim mythread As New System.Threading.Thread(AddressOf myProccess)

mythread.Start()

Private Sub myProccess()

.....

End Sub

指令相當簡單,開啟一個新的執行緒去執行myProccess()副程式,當然你可以用mythread.Name為這個執行緒命名,其中執行緒也含有一些方法,如Abort,但在經驗來講WinCE中似乎並非每次都管用,所以我的建議myProccess副程式最好內寫好退出執行緒的路子,免的出現關閉程式還是沒辦法結束副執行緒的窘境。

第二個方法執行緒集區(ThreadPool),是用隨時會有大量執行緒需求,而每個執行緒執行時間短且都會釋放時,會選擇使用ThreadPool,以前想達程ThreadPool的要考慮的問題很多,NET已經簡化這些問題了,事實上當開啟一NET程式,CLR已經提供我們一顆CPU 25條的ThreadPool使用,其使用方式也很簡單:

Dim myCallback As New System.Threading.WaitCallback(AddressOf myProccess)

System.Threading.ThreadPool.QueueUserWorkItem( myCallback , Sendata)

Private Sub myProccess(Byval state as Object)

.....

End Sub

其中WaitCallback是執行緒集區執行緒執行的回呼方法,若要建立委派,您可以將回呼方法傳遞至 WaitCallback 建構函式,比較需要注意的是其副程式要含有傳入參數state,這是必要格式。之後只要使用ThreadPool.QueueUserWorkItem即可交給CLR管理我們的ThreadPool,程式非常簡潔就能提升效能,M$真的是太貼心了。


傑克鼠 發表在 痞客邦 PIXNET 留言(0) 人氣()

找更多相關文章與討論