[轉貼] 驗證碼圖片的識別手記之一 --- 去除干擾

2013年11月11日 星期一


[轉貼] http://www.cnblogs.com/kingthy/archive/2008/08/06/1262475.html

163相冊驗證碼圖片的識別手記之一 --- 去除干擾

聲明: 此文章只是記錄我在處理163相冊驗證碼圖片識別過程時的想法思路,在此發表只是純粹基於技術探討目的.因此在文章中不會提供任何源碼下載!!任何人利用這裡介紹的方法所做任何事情而出現的責任本人概不負責!!如果需要轉載此文,請註明原作者和出處!!

一.認識驗證碼圖片
下面提供幾種163相冊的驗證碼圖片樣例:
                                        

 從上面的樣例圖中可知道163相冊的驗證碼只是使用了平常所見的中規中距的0-9數字驗證碼和外加一些干擾措施,其中0-9數字圖如下:
                            


二.去除干擾
從上面的樣例圖中可知道163相冊的驗證碼圖片使用了"變色","干擾點","干擾線","變位"等幾種用於干擾自動識別的"手段".因此為了方便程序識別則必須先將干擾去掉.

"變色" : 在某些簡單的驗證碼圖片中常常將背景色或干擾色和前景色(驗證碼顏色)的顏色值分別固定用不同範圍內的顏色表進行填充.而對於使用此種"變色手段"的圖片則可以使用"二值分化"將驗證圖片處理為只有兩種顏色的圖片後再進行處理即可.而163的驗證碼圖片中的干擾點和干擾線的顏色和數字的顏色都基本都是隨機的.所以"二值分化"方案在這裡就用不上了.(註:但也幸好有了"變色",導致各個干擾點/線和各個驗證碼的顏色是基本不相同的,所以對幹擾去除提供了更大的方便).

"干擾點" : 處理那些單獨的干擾點就實在太容易了.只要掃瞄一遍圖片,判斷哪些顏色點的四周是空的(顏色值為背景色)就基本可以判斷那點為干擾點了.然後將去除(置為背景色)即可.

去除干擾點後的驗證碼圖片樣例如下:
                                         

"干擾線" : 從上面兩組對比可看出.去除干擾點後,效果也不是很明顯:( 干擾線佔的比率太大了.所以還要進一步去掉干擾線.而對於直線型的干擾線.則可以簡單直接判斷某點的顏色值是否連續出現,如果連續出現次數超過10次(嘿嘿,留個作業.這個值怎麼來的?)則基本可以判斷為干擾線.但可惜的是.163驗證碼圖片中使用的是非直線型干擾線.所以此方法行不通.只好採用"塊判斷法"(嘿嘿,自己取的名字).也就是掃瞄一遍圖片.當掃瞄到某點時,則以此點為左上角,取寬為8高為10的塊(又是一個作業.這兩個值怎麼來的?如果上面的作業會做了.這個應該不是問題了.嘿嘿).然後判斷此點的顏色值在此塊中出現的次數.如果出現的次數越過一定數量(這個數量值很重要,因為關係到干擾線清除的"乾淨度"又關係到是否會"誤殺"掉驗證碼圖片.我試驗過程中使用的是17)則可認為此顏色值是驗證碼使用的顏色.否則繼續掃瞄下一點.直到圖像的所有點掃瞄完成.掃瞄完後則可認為除了剛掃瞄到的驗證碼顏色外其它顏色都可認為為干擾色直接去除即可.

根據上面方法進行處理後的驗證碼圖片樣例如下:
                                       

效果出來了.部份圖片明顯的將干擾線去掉了.但是對某些特殊(彎曲特歷害的)的干擾線還是去除不了.分析到這裡後我的思路卡殼了.要怎麼樣才能將那些彎曲的干擾線去除掉呢?來來回回的看了驗證碼樣例圖片和0-9數字圖片,終於有一個"啊哈"閃光在我頭腦裡呈現:為什麼我要取塊來判斷呢(把問題搞複雜化了-_-),直接使用顏色"步長"(又是我自己取的名字>p<)統計不就可以了嗎?

顏色步長統計法:
在驗證碼圖片裡干擾線和驗證碼的顏色是分別不相同的(拜"變色"所托!)並且0-9數字圖片的長寬是固定的(作業答案在這裡.嘿嘿).所以直接在掃瞄圖片時記錄每種顏色的出現次數和第一次與最後出現的坐標.掃瞄完圖像後統計"出現次數大於一定數量(這個數量值很重要,我試驗時取的是20)並且最後出現和第一次出現的x軸差必須為正負8之內,y軸差必須為正負10"的顏色(驗證碼顏色).如果不滿足此統計條件的顏色都可認為為干擾色直接去除即可.

根據上面方法進行處理後的驗證碼圖片樣例如下:
                                       

到此,所有干擾線都完美的去除了.剩下的就是怎麼識別驗證碼了.

2013年11月2日 星期六


基於c#圖像灰度化、灰度反轉、二值化的實現方法詳解
http://www.jb51.net/article/37066.htm

二值化範例(於C#使用指標)
http://blog.csdn.net/ssdjmcj8048/article/details/1790895

C# 處理bitmap用指標處理注意事項
http://rhroan.pixnet.net/blog/post/42765118
http://ccckmit.wikidot.com/code:handwrittendigitrecognition(簡易辨識 陳鍾誠)

C# 辨識文字(透過輪廓)
http://www.cnblogs.com/ivanyb/category/338020.html
http://www.pin5i.com/showtopic-26712.html (使用openCV 暫時不想用)

圖片相識度演算法
http://www.cnblogs.com/wuchaodong/archive/2009/04/28/1444792.html#!comments

[轉貼].NET(C#)平台調用:使用EnumWindows和GetWindowText列舉窗口

2013年10月19日 星期六

[轉貼].NET(C#)平台調用:使用EnumWindows和GetWindowText列舉窗口

對於API的EnumWindows,第一個參數WNDENUMPROC是一個函數指針類型(EnumWindowsProc),HWND代表窗體的句柄。第二個LPARAM代表EnumWindows的第二個參數,即傳入回調函數的用戶自定義對象(參數)。

EnumWindows只能獲取一個窗體的句柄,因此用GetWindowText返回窗口的標題。

代碼:
//函數指針類型
delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);

[DllImport("user32.dll")]
static extern int EnumWindows(EnumWindowsProc hWnd, IntPtr lParam);

[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int GetWindowText(IntPtr hWnd, StringBuilder lpText, int nCount);

//回調函數
static bool PrintWindow(IntPtr hWnd, IntPtr lParam)
{
    //分配空間
    var sb = new StringBuilder(50);
    GetWindowText(hWnd, sb, sb.Capacity);
    //注意某些窗口沒有標題
    if (sb.ToString() != String.Empty)
        Console.WriteLine(sb.ToString());
    //回調函數有返回值
    return true;
}

static void Main()
{
    EnumWindows(PrintWindow, IntPtr.Zero);
}

[轉貼] TF-IDF (TF-IDF 最簡明的說明)

2013年10月2日 星期三

[轉貼] http://blog.xuite.net/jesselue/4664/20673385-IR(%E5%85%AD)--+TF-IDF%E3%80%81%E4%BA%8C%E4%B9%8B%E4%B8%80

根據維基百科對TF-IDF的解說:

TF-IDF(term frequency–inverse document frequency)是一種用於資訊檢索與資訊探勘的常用加權技術。TF-IDF是一種統計方法,用以評估一字詞對於一個文件集或一個語料庫中的其中一份文件的重要程度。

先解釋一下以上這一段文字:

TF(term Frequency):

大家都常用搜尋引擎google、yahoo...等等唄!到底搜尋引擎是如何搜尋某一串字的呢?

在google中鍵入文字一串字,例如:"維基百科",會出現一堆包含"維基百科"四個字的網頁,試著想像一下,由網路上這麼多網頁中,如何排列出那些網頁最能代表"維基百科"這四個字?最直覺的作法,不外乎先把全世界所有的網頁掃瞄一次,然後一一計算"維基百科"這四個字在每一個網頁出現的次數,當然,出現愈多次,表示該網頁愈和"維基百科"這四個字愈有關係。接著,以某一個網頁來看,比較不同的字串,例如,"維基百科"這四個字在這個網頁出現100次,而另一字串"百度百科"在該網頁只出現10次,那麼是否表示,"維基百科"和這個網頁的關係愈深,對於這個網頁來說,這個字串"維基百科"就愈重要。也就是如維基百科對TF-IDF所說,

字詞的重要性隨著它在文件中出現的次數成正比增加。

如果,我們將全世界所有網頁都做個記錄,什麼記錄?就是該網頁最重要的十個字串的記錄,例如:

(公式一)

網頁A:"維基百科"出現70次,"百度百科"出現10次。

網頁B:"百度百科"出現30次,"維基百科"出現20次。

....

如此一來,我們可以依照某一個網頁中字串的重要性來列出網頁的排序,當我們鍵入"維基百科"時,網頁A自然會排在網頁B前面,當我們鍵入"百度百科"時,網頁B自然會排在網頁A前面,如此,就是一種搜尋方法,所以,

某一個字串在網頁出現的次數這件事情是很重要,"字串在網頁出現的次數"就是TF(term frequency)。所謂的"TF-IDF是一種統計方法"云云,想簡單一點,就是"計算出現的次數"唄,"統計方法"四字不過是"計算出現的次數"的一種抽象說法。

OK,那就"計算出現的次數"唄!把一個網頁中的字串統統拿來算一下"每個字串的出現次數",那個數字大就表示這個字串對這個網頁的重要性高!讀數學的人愛表現,想讓人看不懂,所以呢,就把這"每個字串的出現次數"除以"所有字串的出現次數的總和"稱為TF(term frequency),其實,這和"計算出現的次數"沒啥差異,所以:

(公式二)

TF(term frequency) = "每個字串的出現次數"除以"所有字串的出現次數的總和"。字串即是term。

tf(i,j) = n(i,j) / ( n(1,j)+n(2,j) + ... n(k,j) )

上式就是第i個字串t在j網頁的TF,n(i,j)就是i字串的出現次數,( n(1,j)+n(2,j) + ... n(k,j) )就是"所有字串的出現次數的總和"。由上式,也表示j網頁共有k個字串。

TF值愈大表示該Term愈重要。

以上面"維基百科"、"百度百科"為例:

(公式三)

網頁A:

"維基百科" TF = 70 / (70+30) = 0.7

"百度百科" TF = 30 / (70+30) = 0.3

網頁B:

"維基百科" TF = 20 / (30+20) = 0.4

"百度百科" TF = 30 / (30+20) = 0.6

所以,"維基百科"對網頁A比較重要,"百度百科"對網頁B比較重要,根據(公式二)的計算,得出0.7、0.3、0.4、0.6四個數字,和70、30、20、30四個數字比較一下,會發現0.7、0.3、0.4、0.6四個數字的表示方法比較好,因為,由此可以看出,"維基百科"對網頁A的TF是0.7居冠代表"維基百科"對網頁A的重要性最高,其次是"百度百科"對網頁B的TF是0.6。

(舉例一)

因此,用0.7、0.3、0.4、0.6四個數字的方式計算時,搜尋"維基百科"時會列出:

網頁A

網頁B

搜尋"百度百科"時:

網頁B

網頁A

如果用70、30、20、30四個數字的方式計算時,則搜尋"維基百科"時會列出:

網頁A

網頁B

搜尋"百度百科"時,因為,"百度百科"在網頁A出現30次,"百度百科"在網頁B也出現30次,就不知道該如何是好了。

因此, "每個字串的出現次數"除以"所有字串的出現次數的總和"的作法,除了"讀數學的人愛表現,想讓人看不懂"之外,事實上是表示出一串字在一個網頁中與其他字串的相對重要性,由以上(舉例一)就可以可出, "每個字串的出現次數"除以"所有字串的出現次數的總和"的作法可以讓"不同字串"在"不同文件"出現的比較更精準。"每個字串的出現次數"除以"所有字串的出現次數的總和"的作法一般稱為normalization(正規化)。

IDF(inverse document frequency):

從另一個角度,如果搜尋一串字,所有網頁都有這串字,而且這串字在每個網頁都出現很多次,是不是表示這個字串沒什麼重要性?舉個例子,用google搜尋a book這個英文字,照理第一個網頁,應該是某個含有a英文字英文網頁,因為a必定比book更易出現,實則不然,因為,每個英文網頁大概都有a這個字,如此,反而讓a這字沒啥重要性了。IDF的表示,是以某一字串出現在愈多網頁愈不重要,例如,有100個網頁:

(公式四)

a出現在所有100個網頁中,IDF是100,則其重要性一定最差。

book出現在10個網頁中,IDF是10,則其重要性比a好。

另外一個表示法,

(公式五) IDF = 所有的網頁數/ 字串出現的網頁數

a出現在所有100個網頁中,IDF是100/100 = 1,則其重要性一定最差。

book出現在10個網頁中,IDF是100/10 = 10,則book的重要性比a大。

因此,在搜尋"a book"這個字串時,應以"book"為主,因為,"book"的IDF值較大。

當然,"讀數學的人"不會放棄表現機會,所以,IDF就成了:

(公式六)

idf = LOG ( 所有的網頁數/ 字串出現的網頁數)

idf(i) =LOG( | D | / | { d: d 中有字串 t(i)} | )

以上| D | 表示所有的網頁數, | { d: d 中有字串 t(i)} | 表示 字串出現的網頁數。

用LOG的好處是將除法換成減法,因而:

idf(i) =LOG( | D | ) - LOG( | { d: d 中有字串 t(i)} | )

TF-IDF(term frequency, inverse document frequency):

tfidf(i,j) = tf(i,j) * idf (i)

這個公式的解讀有些意思,可以唸成,字串ti在網頁j的tfidf是 tf(i,j) * idf (i)。

以上就是TF-IDF最基本的解說。

[轉貼][修改] 查看戰鬥回傳數據 - 為甚麼會被鎖!?

2013年9月29日 星期日

標題: 神魔之塔 回傳資料分析(戰鬥結束)
我們要知道戰鬥結束後,魔神回傳了甚麼資料,從回傳資料中,我們能得知自己的修改有否被查出來。
首先我們要抓到回傳封包.

(瀏覽器建議使用: Google Chrome)

用任何方法找到回傳封包就可以,以下我簡單介紹2種.

方法1: 
工具
Burpsuite : http://portswigger.net/burp/download.html
就是之前Proxy用到.
這個不詳細介紹,會用就用,不會用就用方法2。

方法2: 
工具
1.Android - tPacketCapture: https://play.google.com/store/ap ... apture&hl=zh_TW
2.電腦 - Wireshake: http://www.wireshark.org/download.html

在Android上安裝tPacketCapture, 在電腦安裝Wireshake。
tPacketCapture用於抓Android 的封包並儲存為.pcap檔, Wireshake用於開啟.pcap檔。

首先開啟tPacketCapture並開始記錄封包傳送過程,戰鬥結束後停止tPacketCapture(由於神魔只於戰鬥結束才回傳資料,為了減低抓封包的數目,建議於"Victory"字出現與結束中間的時間開動封包記錄,神魔出現"繼續"按鈕,那時已完成回傳,可以停止抓封包了)。tPacketCapture會產生一個.pcap檔,然後把.pcap檔傳到電腦,並開啟Wireshake。

tPacketCapture的教學: http://www.youtube.com/watch?v=PjJbfYfDsX4



用Wireshake開啟.pcap檔後,在Filer上打 http.request.method == "POST" (如:圖1紅色)
圖1


開啟網頁: 
1. http://tosparseurl.net63.net/TOSparseURL.php
後備. http://tosparseurl.net78.net/TOSparseURL.php

然後右按圖1啡色把內容COPY(用圖2的方法COPY)貼在圖3的URL上(圖3紅色)
再右按圖1深藍色把內容COPY(用圖2的方法COPY)貼在圖3的POST BODY上(圖3藍色)
圖2


圖3


你就會看到你的戰鬥資料~(歡迎提供未知資料~!)

PS.回傳資料記錄了你的戰鬥數據,若是你的數據太可疑被鎖,你就知道甚麼原因了!

[轉貼] 資工研替面試心得

[轉貼] 資工研替面試心得 http://www.ptt.cc/bbs/Tech_Job/M.1380471415.A.0BB.html

http://www.ptt.cc/bbs/Tech_Job/M.1380471415.A.0BB.html

小弟在去年的時候也是在這裡收到很多前輩面試的經驗 因此在今年研替又要開跑的時候 提供一些小弟在去年面試時的一些經驗 雖然有點久了可能沒辦法記起太詳細的面試題目和過程 小弟的背景是交大資工畢 希望以下的文章能對今年尋找研替的學弟們一點幫助 但面試的結果,基於某些因素的考量,在此就不提供 希望各位能夠見諒。 第一間: 鴻璟 這是我的第一間面試公司,因此上網爬了很久。誠如網路上所說的,這家面試前會先 寄給你一份C語言的考試,要你寫完之後寄回去,內容就是解一些演算法的問題, 但至於是甚麼我真的忘了抱歉...之後去公司面試時,還是會考個 C 的測驗 。 考的不難,就是面試必考的指標,以及 extern、static 的變數範圍,和 trace code。 考完之後主管進來面試,也跟網路上說的一樣,一進來就當場改你的考卷,若有不對的 地方,也會給你機會請你當場修改。改完考卷以後,主管會開始講解他手上的那塊板 子,說這塊板子上面有哪些東西是他們做的,公司在做些甚麼,源源不絕的講。 也沒問你問題,就是講解完公司在做甚麼之後就開始閒聊。最後被用非常委婉的方式 打槍,說我是做影像處理的,應該找跟影像處理相關的公司。 第二間: 恆景 主管的面試方式很正規,一進來就叫你自我介紹,然後問碩論,問社團,一個問題 問完接著下一題,有充分準備基本面試問題的話應該可以談笑自如。主要應該是看你的 表達能力以及溝通技巧。問完我的經歷後就開始介紹他們公司在做甚麼,然後接著就問 我有沒有甚麼問題要問。基本上就是一個非常中規中矩的面試,一問一答,沒有很犀利 雕磚的問題,主管給我的感覺也還不錯。不過因為是第一階段的面試,所以主管收走我 的履歷之後就請我等待第二階段面試的通知。 第三間: 群暉 恩...這家真的很刺激,問的問題大概超過二三十題,也不是問甚麼你家住哪, 你興趣是做甚麼之類的問題。網路上的心得也不少,看完之後就準備來過三關。 第一關: 面試官 (資深RD工程師) 面試官一進來還跟我喇賽一下,閒聊一些平常的事, 然後開始問一些有關學校課業的專業問題,例如說,你知道 Virtual memory 是甚麼嗎? 可以說明一下 compiler 的架構嗎?可以說明一下網路連線時,Server 端和 Client 端分 別會做甚麼事嗎?。這些問題當然只是暖身,他也很老練的感覺跟我說, "你應該知道 我們公司面試都會有個小測試吧,那我們暖身就結束囉",於是就開始進入程式設計階段。 第一題是叫我實做 atoi、itoa 這兩個 function。第二題就是叫我用 link list 實做 stack。最後還考我一個腦筋急轉彎,就是三人排排站,三紅兩籃的帽子,問丙帽子的 顏色,想了一陣子,不過後來也是有解出來。之後他就叫我等一下。去跟第二個面試官 討論。 第二關: 面試官 (資深RD工程師) 面試官一進來連喇賽都不喇賽,直接就說,"我們直接開始測驗",於是就開始白板測驗。 題目大概也是跟 link list 有關係,包括 link list inverse、link list 實做 stack 找最小值等等,而他在我寫程式的時候邊看履歷。寫完檢討完之後也是開始問一些專業問 題,不過我也忘記他問我甚麼了。問完之後他請我稍帶片刻,這時候助理小姐拿來了御飯 糰和飲料請我吃午餐。然後叫我邊吃邊等待第三關面試。 第三關: 面試官 (主管) 這面試官給我的感覺非常的差,雖然笑笑的但是感覺不是友善的孝。於是開始問 一些犀利刺激的問題。你說你會軟體工程,那你知道 UML 是甚麼嗎?那你知道這 個符號在 class diagram 裡面代表甚麼意思嗎?你程式都是自己寫的嗎?那你可以寫一下 這個 class diagram 中B、C繼承A是怎麼實做的嗎?說明一下 class 中 public、 protected、private 三者差異。問完之後也是有開始考程式,問題就是用 link list 實做 buble sort,但是不能用換內容的方式,要使用換指標的方式。其實 面試真的很久我有點累了,從十點面試到兩三點。所以這題我沒解出來,最後 換我問問題的時候主管給我的感覺也是很想打發我,回答得很隨便,讓我覺得滿ㄟ洨的。 有種被亂槍打鳥,沒中就被打發走的感覺。 第四間: 創傑 進去一開始也是有個 C 和 OS 的小測驗,也是考一些指標觀念和 trace code。OS就 考甚麼是 trap 這種研究所考試會在第一大題名詞解釋這種level 的問答題。 考完以後主管也是滔滔不絕的講,也沒有問我問題。講完他們公司在做甚麼以後, 就開始閒聊。他說這是第一階段的面試,主要只是看看我們有沒有興趣做這樣的工作, 之後才會有第二階段的面試。因此面試完之後他親自送我下樓,請我等待下一階段的 面試。 結果: 無聲卡!!! (我考試90幾,面試也是他說話,為什麼這樣就被淘汰了!!!難道長相也有關係...) 第五間: 廣達電, 職缺: 雲端運算軟體設計工程師 這間公司真他X的大,老遠就知道在哪裡了。一開始過去不知道怎麼停車,問個警衛兇的 跟甚麼大便一樣,報路根本有報跟沒報一樣,"現在迴轉前面T字路口左轉然後在右轉過紅 綠燈後左轉看到黃燈再左轉從旁邊入口進去後右轉在左轉,到那邊停車!!!!",我要是記 得起來我他媽去玩金庫密碼拿現金就好啦!裡面每個警衛都很兇,X拉!進去以後人資也像 個公務員,一點親切感都沒有,收履歷,然後叫我們進去考英文,英文是仿多益,。 考完以後又叫我去考C++,題目不外乎就是 DS 的名詞解釋 FIFO、FILO等, 還有 call by value 那三種呼叫的差別,和 int **p 佔幾 Byte,以及用 memcmp 寫程 式,還有問一些性向測驗以及腦筋急轉彎。之後主管就進來面試了,主管一開始也沒叫我 自我介紹,長的滿嚴肅老老的,一進來就叫我介紹我的碩論,之後看著我的問題問一些 問題,基本上都回答出來,只有OS的同步化怎麼解我有點忘記了。但這似乎也是他最想 聽到的答案。 問完之後他就開始介紹工作內容,然後問我有沒有些甚麼問題之類的。 基本上公司給我的感覺還滿老派的,主管也滿老派的,感覺就是希望我是個即戰力的人。 面試完就叫我去問人資看還有沒有甚麼事。人資還是一臉公務員嘴臉跟我說叫我一兩個 禮拜等候面試結果。 第六間: 訊連 一開始先去考試,考完如果有過標準才能擁有面試資格,考試題目分成語文測驗, 邏輯測驗,數理測驗。題目大約二十題吧,六七分鐘要寫完,時間超少的!!! 大概寫個十題就剩三十秒了吧。所以建議寫題目的時候跳著寫,簡單的先寫一寫。 簡單的很簡單,大概就是向 4x = 8,x = 多少,而且數量不少。之後還有考一張 C/C++ 的題目,裡面比較難的我想大概就是程式碼的改錯。指出這段程式執行 出來會出現怎麼樣的 error 。 網路上做過功課的人都知道,訊連面試前是要考英文測驗的,標準是 550 分,我在 網路上看到有人英文沒過就被請回家了,看到自己的分數後整個很抖。結果進來找我 的人不是人資,是主管。臉看起來超臭的,其實也不是臭,就是跟人資一樣。說好聽 是面無表情,說難聽是死魚臉,感覺很嚴肅。一進來就問我成績單在哪裡(哇靠!), 聽到他問這個,我就知道大事不妙了,果真不出所料,問的問題都超級犀利的,第一個 就問我論文怎麼做的,用到甚麼技術,還質疑我的研究,說我的論文創意在哪裡。 然後開始指著大學成績單開始抽問,問我3D貼圖怎麼貼的,Compiler 的過程是怎樣, OS 中 Thread 和 Process 的差別是甚麼。問一大堆有的沒有的,虧他一進來還跟我 說看我打工的性質跟別人不一樣,不是做科技業相關的打工,還以為他要跟我聊打工勒。 然後又說我專長是影像處理,哪有修過那些影像處理的課,我跟她說我沒修過影像處理 ,但我有去旁聽,他就逼問到底,問我旁聽過甚麼課,那些課在上些甚麼。這完全跟我 預期的面試不一樣,我聽我同學說他們主管進去就跟他們聊天,完全沒有壓力,而且面 試的主管都兩個以上,為什麼我面試的跟群輝給我的感覺一樣。之後一樣主管介紹他們 公司在做甚麼,他們是kernel team很常被追殺之類的。他說雖然現在是他在面試,但之 後也不一定會去那個部門,部門會再分配,然後就問我有沒有甚麼問題。面試完以後, 又是另外一個人資進來,問我剛剛面試的怎樣,有沒有興趣去那個部門工作,感覺就是 隱藏版的面試,也不敢亂回答這種笑理藏刀的問題。之後人資果不出所料的跟我說, 他們RD英文標準是550,而且說我之前筆試推理部分沒有考很好,但程式語言表現不錯, 問我要不要補考。我怎麼敢說不要。補考完後的成績還不錯,交卷前有向上天祈禱一下 。之後人資進來,他說我補考後的成績還不錯,我以為他要叫我等一下,下一個主管要來 面試,因為我聽說面試會有兩三個主管,沒想到他就叫我滾蛋了!!! WTF!!! 補考不錯不 就應該要繼續面試嗎,不然補考幹嘛。就這樣帶著滿身疑惑地離開公司,也不知道他們 用人的標準是甚麼,感覺就滿看重筆試成績的。 第七間: 智易,職缺:軟體研發工程師 一開始去公司先考試,英文、性向測驗和專業考試。英文非常簡單,大概國中程度吧,專 業考試就考類似 interrupt 和 polling 的不同,叫你算 int *p[20] 和 int (*p)[20] 在記憶體中佔的位元數,或是 trace code,程式改錯等等。網路就考一些基本名詞 ARP、TCP、UDP差別,解釋 DNS,DHCP 等等,畢竟他們是做網路的公司。接著就是和主 管與人資的面試,非常特別,主管和人資一起面試,但這間是我聊得最開心的一間, 真的體驗到甚麼叫聊天,(淚奔~),之前根本一直問專業問到我都煩死了。雖然主管還是 有問一些專業問題,比如說網路程設 http server 我的作業在做些甚麼,linux 上的作 業都在寫些甚麼,感覺他們很在乎 linux 和 網路。問完之後就開始介紹他們公司的產品 ,然後一樣問我有甚麼問題想問。他們說現在的主管不一定是你之後的主管,要看到時候 而定,而且他們也沒有保障14個月,全部都看績效,他說幾乎都會超過14個月,但這我怕 有陷阱哈哈,會不會我進去就是那個不幾乎。面試完後人資還說我是目前面試表現前五名 的,叫我等候通知。 第八間: Acer 這間是來學校面試的,一開始進去主管先介紹自家公司的產品,和這個部門是在做甚麼的 。我覺得挺驚訝的,居然沒叫我先自我介紹。主管講完之後就開始叫我自我介紹,還特別 提醒我如果講到論文比較技術性的地方就簡單帶過就好。因為我的履歷修課內容是一條一 條列出來,他就開始一門一門課問,不過不是問得很深。有一個地方我回答的不是很好, 就是他說當時我嵌入式系統很慢的時候,該怎麼解決。我回答我去問助教,助教說那是硬 體的問題,沒辦法。但是主管是跟我說開發產品的時候要以 User 的角度去看產品,不要 以 RD 的角度去看。基本上面試的過程我這次表現都非常流利。主管也跟我說我是目前來 面試的人裡口條算最好,表達能力最強的人,聽了還滿爽的哈哈。主管的問題都沒有太尖 銳,其餘的問題也都回答的不錯,唯一的疏漏大概是我石門水庫忘記關了吧。 第九間: 富士康,職缺:Android手機軟體研發工程師 這是我非常糟糕的一次面試,面試的地點在竹北,我騎著騎著就騎到新豐了,到公司已經 遲到十五分鐘。進去公司我有點驚訝,因為人資超正的哈哈。之後先考個半小時的仿 多益測驗,我覺得難度比廣達簡單,之後就開始主管面試,主管一開始先叫我自我介紹, 然後問我大學專題在做些甚麼,之後也沒多問甚麼。我以為他會把主要時間放在介紹公司 產品之類的,但不過不知道是他對我沒興趣還是怎樣,他的介紹比我自我介紹還要簡短, 而且感覺他講話沒甚麼重點,抓不到方向,連問個公司有甚麼福利也都支支吾吾的。 感覺他還沒睡飽。問甚麼都回答不確定,不知道,不知是他沒甚麼準備面試,還是真的對 我沒興趣= =。而且他也沒有對我的東西問很多。我看的名片是寫資深工程師,想說會不會 不是主管所以會再安排第二次面試,結果人資說只面試一次而已,有點冏。 第十間: 鈊象電子,職缺:Server/Client軟體工程師 公司也還滿大間的,過去就知道整棟都是他們公司的。進去之後人資先請我填沒填完的資 料,然後就開始進來三個主管面試,這是第一次和三個主管面試,一開始還滿緊張的。不 過主管感覺滿和善的,也沒問很犀利的問題,就大概是你大學最想留下哪本書,你以前專 題失敗後有哪些改進的方式。因為好像是其中一個主管看到我的履歷才面試我,另外兩個 主管沒問我很多問題,就是一直在滑手機,然後翻翻我的履歷,找我的錯字。問題都沒有 太專業。但他們這是初試,之後還會有複試。不知道是不是因為這樣的關係,所以問的問 題都很少,也沒做甚麼介紹,回答得也很簡潔。比如說我問他我之後的工作內容是甚麼, 他說"因為我們是線上遊戲公司嗎,所以可能會用到雲端的一些東西",我心想,就這樣!? 這甚麼狗屁回答,可能是初試所以沒有問太多吧。之後人資進來跟我說一下福利甚麼東西 的,然後就請我回去等第二階段的通知。 第十一間: 富士康,職缺:研發替代役軟體工程師 因為之前有在竹北考過英文了,所以這裡就沒再多考一次。只有考一張專業的考卷,這張 考卷大概是我考過最難的一張吧,撇開JAVA我根本不會不說,指標考的也滿難的,但我真 的被嚇到忘記考甚麼了抱歉,還有問為何分離 kernel space 和 user space 的一些 linux 問題。之後進來第一個主管面試,主管也沒叫我自我介紹,就大概閒聊一下, 然後開始介紹他們公司。主管感覺話滿多的,劈哩啪啦一直講,一直介紹,也沒問我甚麼 問題,就是一直講他的,感覺人還不錯。之後就問我有甚麼問題要問,不過我覺得每間公 司都大同小異的感覺,而且我之前也問過竹北的主管了,所以就沒問甚麼問題。之後又來 了第二個主管,感覺就不好玩了,一進來就翻了我的成績單,然後說我大學成績好像不太 好。然後就開始問我的大學專題,問我的碩論,但是沒有問得很深,只是問說大概怎麼做 的,負責哪一塊。雖然一開始有點抖抖的,不過後來發現主管人也還不錯,做的東西也比 較有趣,至少有寫手機上的APP,應該不會太無聊,而且說話也很講重點。之後人資進來 跟我聊了一下,問我面試了公司的三個部門,哪一個部門的意願比較高。或是問我現在 面試了幾間如何如何的。然後他跟我說名單最晚十一月底會出來,叫我到時候再看看。 第十二間: 廣達,職缺: Android軟體、韌體工程師 第二次來廣達,考過英文,所以不用再考一次,直接進入專業測驗。考卷算滿簡單的,考 滿多OS的東西,比如說 ISR 定義及功用,Process 和 Thread 差別,write through 和 write back 的差別,考幾個指標的運算,和 Trace code、最後一題還可組合語言,但 是都不難。考完以後主管進來面試,主管感覺人不錯。沒有叫我自我介紹,直接開始閒聊 ,也沒問甚麼專業的問題,但問的問題都滿難回答的,比如說你做過哪些 Project,遇過 甚麼 bug,後來怎麼解決的? 或是說你在那次專案擔任甚麼角色,做了甚麼事,雖然不是 專業問題,但也不好回答就是了。之後也是開始閒聊,然後給我問問題。但他感覺好像被 研替衝康很多次,一直問我如果上了你真的會來嗎?現在上了哪幾間?之類的問題,很怕我 拿到offer後又衝康他。 第十三間: 鈺寶科技 職務:軟體設計工程師公司 坐落於田野間小路之中,滿偏僻的,去面試時覺得不可能是這間拉~然後就騎過頭了。 一開始進去先考一個邏輯考試和文字腦筋急轉彎的題目,邏輯考是不外乎就是給你幾張 圖,然後問你最後一張圖應該長怎樣。文字腦筋急轉彎還滿有趣的,比如說問你,大月 31 天,小月 30 天,二月 28 天,問你一年之中有幾個月有 28 天。 考完以後人資進來和我閒聊,聊說有沒有辦過活動,和夥伴團隊合作之間的技巧。做過甚 麼打工,從裡面學到甚麼之類的問題。面試過哪幾家公司,有沒有想找特地的產業。然後 我偷偷看到了我的考試,考了 84 分,應該是還可以吧。人資跟我說,等等會有一群人跟 我面試,就是未來會一起工作的團隊會和我一起面試,聽了有點嚇到,這麼多人面試我會 被問爆吧,人資叫我不用擔心,不會問太深的問題。 接著換到另外一間比較大的面談室。我原本以為會有七八個人,然後大家氣氛開朗的喇D 賽問問題,大家都笑得很開心之類的。結果和我預測的不一樣,來了一位頭髮白白卻充滿 活力的主管,感覺是早上會去晨跑的那種人,然後後面跟著兩個 RD。面試開始後,就猛 開始賞我耳光,一開始先問碩論,我以為他不會問很深,結果他叫我畫架構圖給他看,問 我怎麼轉灰階的,sobel 做甚麼,怎麼做。一直賞我耳光,說我轉灰階的方式錯了,然後 開始問我影像處理的東西。接著後面就是一連串的驚奇,主管告訴我他們公司一直在虧錢 ,然後還跟我說他們做得跟我學的沒甚麼相關,問我這樣還會有興趣嗎。還跟我說一年之 中可能會有幾天要趕專案到天亮隔天繼續上班。真的是太驚奇了。我開的薪水他們沒有這 麼高。兩個RD也沒像我想的活力有朝氣,講話的聲音要死不活,好像真的很累一樣, 是有多累...。就這樣一連串驚奇之後,主管叫其中一個學長帶我參觀公司。公司說真的, 桌上東西滿多的,不過學長說公司還是可以考慮看看,在產業中他們的薪水還算是中上。 第十四間: 第二十間: 京晨科技 職務:軟體設計工程師 人資很正!這是我的第一印象,公司在台大的校地內。一開始先進去寫邏輯測驗和基本資 料及專業考試,邏輯測驗還滿簡單的,就是類似推理,如果A平常搭公車上班,他如果搭 捷運會比搭公車早到公司,今天A比平常早到公司十分鐘,所以A今天搭捷運上班。問你這 個敘述是對或錯,錯的話是錯在哪裡。專業的話考滿多C++的OO概念,比較指標和參考的 不同,解釋 memory leak,比較參數傳遞的三種方法的不同,計算 byte,寫一個程式判 斷處理器是big_endian或是little_endian,還有程式碼的除錯、建構子、pure virtual function、abstract class 等等。 考完之後主管就近來面試,主管親和力十足,叫我直接叫他英文名字即可。一開始先請我 自我介紹然後從中閒聊,就真的是閒聊,閒聊的內容可能會涉及到一丁點專業,但是絕對 不會回答不出來的那種。之後主管開始介紹他們公司,介紹的非常之久,雖然沒有聽得很 懂但是有大概建立起一些概念。算是比智易還要更聊天的一次面試,整個聊了快一個多小 時,之後主管還說,希望我能考慮他們公司,他們公司沒有甚麼主管不主管,大家都相處 得很融洽。然後問我面試過哪幾間,開始跟我分析他們贏在其他家哪些地方,然後我說我 想要怎樣,他也跟我說他們公司也有甚麼的。最後說希望能來他們公司幫忙,這句話前後 大概說了三次吧。臨走之前還遇到大學學長,然後主管還對學長說,要幫公司說好話,把 我拉進公司,整個就是受寵若驚。 弟十五間: 第二十一間: 台積電 職務:自動化整合工程師 台積電的 HR 真讓我有點傻眼 我: "喂" HR: "你好,你有來應徵我們研發替代役職缺" 我: "恩對" HR: "面試時間是下禮拜二下午" 我: "喔..."第一次看到 HR 約時間都不用問OK不OK,直接指定打擊的= =,阿不就剛好我 那天沒事,不然就要叫我吃屎。 台積電的面試讓我感覺不是很好,首先停車場車位超少,找了十五分鐘才找到車位。一進 去之後就開始做英文測驗,英文測驗分聽力及閱讀,說真的聽力是還滿簡單的,閱讀算中 上而且十五分鐘要寫十六題根本寫不完。之後做一個性向測驗,內容也不贅述。然後跟 別人不一樣的是先跟人資面談,人資長的就滿壞女人的感覺,就是本土劇會演壞女人的那 種,臉上完全沒有笑容,偶而面談時我說個笑話,他也是...冷笑...WTF!問的問題... 比如說"我們來談談你大學修的比較差的課好了,為什麼你會被當?"這要我該如何說才好 呢...除了我笨我修不過難道我要說"因為我沒被當過,所以想說被當看看好了", "因為我被當第一次感覺還不錯,想說再被當個一次好了"之類的答案嗎...之後還是給他 一個官方說法,然後問社團,辦過甚麼活動,面試過甚麼公司,選擇公司的時候會以甚麼 為主要考量。然後我履歷上面寫說,對事物要求完美,近乎苛求。人資就問,舉個例子吧 ,反正我履歷上寫甚麼,他就請我舉個例子。和人資之後我就被帶去面談室和主管面談。 主管人算不錯,但是就是問的問題也滿難回答的,一進去下來問我有沒有甚麼東西要給他 看,我就拿出我大學作品給他看,然後他開始指教我說我封面做的比較隨便,說得很委婉 ,他是建議我下次可以換個封面之類的,不過聽起來不會刺傷人,因為他是真心建議我, 所以對於主管的壓力也減輕了一點。主管算是個希望你講出具體東西的人,比如我說在電 影院上班,我學到如何看人,瞭解這個人大概是怎樣的個性,我主要是想表達面由心生這 個概念,然後他就問"那你覺得我看起來怎樣?是怎樣的個性?"哇靠~~我當然只會講好話壓 ,不然我要說你看起來很積八嗎。然後開始使用沉默之術,當我拿出我的軟體工程作品, 就像剛剛說的他一開始先建議我封面可以換,之後就說,你拿出這個東西給我看,是有甚 麼特別的東西要呈現給我嗎?然後他翻了我的成績單,66分...然後他說 "對呀,你這科的 成績好像也沒很好,你有甚麼特別的東西想表達嗎?"我也不知道該說些甚麼,只能跟他說 這是我過去上課的一些作品,那能夠以書面呈現的東西也滿少的之類的屁話,然後說因為 考試是我的罩門,所以成績沒有很高,結果他開始施展他的封印之術,說你考大學是榜首 ,考交大前五名,怎麼會說你考試是罩們呢?我就開始解釋說,因為我比較會準備長時 間的考試,短期的可能比較無法應付。然後他叫看著我的履歷上的介紹開始問,"你說你 寫過很多大型的程式,說幾個來聽聽吧。"我就說了我碩一的時候修過網路程式設計,程 式是由小變大,慢慢加功能的。他就翻了一下成績單,"喔~70分。恩。"我又被禁言了... 然後他就問我還有寫過甚麼大型程式嗎,我就說出了我的大學專題,和學長一起寫的,他 就說"喔~那也是跟學長一起寫,是學長在帶,有沒有甚麼是你所領導的專題。",我就抖 出了我的3D動畫嘴砲,幸好他沒再繼續追問我有寫過甚麼大型專案了,不然我可能連大一 的 hello world 都講出來了,我哪有這麼多機會寫大型專案!!!問的問題會打破砂鍋問到 底,要你舉出實例,但會給台階下,不會讓人太難堪,也不會給人有尖銳的感覺。 第十六間: 關貿網路 職務:雲端工程師 主管狂酸人,PH 值 < 1.0。一開始先寫個半小時的考卷,第一題是考 POST 跟 GET 的差 別,然後考了 OO 的概念和 JAVA 的 trace code,要你用 OO 概念創建一個類別來設計 程式,接著問你最熟悉的語言,用這個語言寫過甚麼專案,遇到甚麼困難。三十分鐘過後 主管就自動進來,來了兩個面試官,一個是主要跟我面談的,一個是在旁邊負責幫腔看我 履歷之類的。一開始主管也沒叫我自我介紹,先是跟我收成績單,嘴巴說他不會看成績單 來錄取人,這根本是屁話!!!!然後我詢問主管是否先自我介紹,主管就叫說: 好吧,那你 先自我介紹一下。我講了五句他就大概插進來問,雖然不會怎樣,但是就是有種不連貫的 感覺。主管算是聊天的方式在面談,然後偶爾開個玩笑,但是可能分寸沒有拿捏好,讓我 聽了滿不爽的。他先是問我大學修過甚麼印象深刻的課,根據上次群暉的經驗,我回答了 OS跟演算法,但他沒有繼續追問,就問了碩士有沒有修過甚麼課,我依舊回答...OS... 演算法...,他就開始嘲諷: 這不是大學就修過了嗎,幹嗎研究所還要再修一次?你不會去 問開課的老師喔,大學開過的課為什麼研究所還要再開,搞得好像全世界只有我在修一樣 。然後他也不多問甚麼,分明就是你不會OS跟演算法吧!!!就開始咬著我的 NP 問,回答 了一些問題後,有些問題不太會回答,委婉的說可能時間有點久,有些部分已經不太熟悉 了,沒想到他不給我台階下,馬上拆台:才過一年你就全部還給老師了,枉費那時候你被 電的這麼慘,那十年前學的東西你不就全部忘光光。之後他問我想做甚麼產業,我回答了 網路或是android之類的,他又開始酸:你講的也太攏統了吧,網路有很多種壓,賣網卡也 是網路壓,業務要用到網路也是跟網路有關壓,可能我回答的不是很好,但他這種回答的 方式實在讓我很不舒服。然後他又問說我以後想做甚麼,我只是隨口說說搞不好以後可以 創業,他追問我想賣甚麼,我只是把我的夢想說給他聽,跟他說變數還很大以後的事都還 不確定,他就開始酸我。說我描述的東西太夢幻了,他聽不懂,很像在給他猜謎,然後說 我做事情要想清楚甚麼甚麼的。之後他問我有沒有甚麼問題要問,其實我也不是很想問了 ,對這間公司實在沒有甚麼興趣,但基於還是要有個好的結束的心態,我還是問了他幾個 問題。比如說,公司福利大概是怎樣,他就回答說,公司網站上面都有寫壓,大致上都差 不多...靠...第一次遇到這麼爛的回答...然後我問他說:公司研替名額大約多少,他一樣 回:只有你一個,我驚訝:真的假的,他說:當然假的壓,公司研發替代役的網站都有寫招 收名額,你問這個幹嗎,喜歡熱鬧嗎?為了找個台階下,我就只好說:因為公司公佈的時候 ,內政部可能還沒公佈真正的員額,所以想說問一下確定一下,他依舊走拆我台階的風格 ,回:我們敢這樣公佈就是肯定會有這些員額拉~其實面試到這我真的有點火了,接著他問 我:你大學有甚麼課是被當過很多次的嗎?我真的忍無可忍,於是回答他:履歷上不是有成績 單,你他X媽眼睛瞎了自己不會看嗎?只見兩個主管目瞪口呆的看著我,然後我很大力的拍 了桌子站起來,把履歷砸在他臉上,立馬甩門離開。 這樣的想法,在我腦海中閃過,我當然沒種這樣做,還是只能跟個臭俗辣一樣乖乖回答他 的問題,最後只好問最重要的工作內容,他回答:你有上我們公司網站查過我們是做甚麼的 嗎? 跟他說大概看了一下,大概知道再做甚麼,不過他似乎覺得我說錯了,然後一樣開始 酸,結果酸到最後我還是不知道要我之後的工作內容要做啥...

[轉貼][Blogger 教學] 將外部連結另開視窗

2013年9月6日 星期五

[Blogger 教學] 將外部連結另開視窗 張貼者: 蕃茄 (Tomato) 在 Blogger 裡所有的連結,預設都是開在同一頁,這樣會導致使用者動不動就離開我們的網站囉,如果你想要能另開窗視當然也能使用 _blank 這個屬性,只是很麻煩,要一個個自己加上去,所以,我就找到以下的 JavaScript ,它可以自動判別是否屬於同網域的連結,如果不是同網域,那它就會自動幫你把連結開在新視窗中,很方便哦! 使用時,只要把它貼入 裡就可以囉! 還要再 裡加上,下面的語法,才會啟用。

雅砌工坊: Blogger 嵌入 Facebook Comments 留言板功能教學

2013年9月5日 星期四

雅砌工坊: Blogger 嵌入 Facebook Comments 留言板功能教學: 最近看了很多網誌和新聞網頁,下方都會有個 Facebook 的留言板,一時興起也想來弄一個。 用 Facebook 留言板的好處是,FB 帳號比較像實名制,善良的使用者也只有一個Facebook帳號,有名字和頭像,大家比較不敢胡亂留言,減少垃圾留言或機器人洗版的可能。而且留...

ilspy & reflector 真是邪惡的工具

2013年8月2日 星期五

C#寫出來的執行檔

很輕易的利用中間碼還原回來

實在太邪惡了

不過為啥這樣C#和JAVA還會如此暢通呢?

簡易井字AI

2013年7月28日 星期日

算是表示能連線的線數目,圈圈內的文字代表算是出來後正和負數的項目差異(正和負個代表圈圈和叉叉方)

[轉貼] [C#.NET][Winform][Thread] 如何 使用 多執行緒 Thread / 跨執行緒 存取UI

2013年7月25日 星期四

[轉貼] http://www.dotblogs.com.tw/yc421206/archive/2009/02/13/7141.aspx

System.Threading 命名空間提供了執行緒的建立,讓開發者省去了不少程式碼。
使用多執行緒時先匯入System.Threading
如何建立執行緒
1.建立一個方法
              private void RunSample01()
              {
              Console.WriteLine("執行緒:{0}",Thread.CurrentThread.ManagedThreadId);
              }



2.建立ThreadStart委派,它是用來表示在執行緒上執行的方法。
       ThreadStart myRun = new ThreadStart(RunSample01);



3.建立Thread 類別,它是用來建立和控制執行緒,設定執行緒的優先權,並取得它的狀態。
       Thread myThread = new Thread(myRun);
4.啟動執行緒
       myThread.Start();



如何建立多重執行緒
              private void button2_Click(object sender, EventArgs e)
              {
              //1.建立ThreadStart委派
              ThreadStart myRun = new ThreadStart(RunSample01);
              for (int i = 0; i < 6; i++)
              {
              try
              {
              //2.建立Thread 類別
              Thread myThread = new Thread(myRun);
              //3.啟動執行緒
              myThread.Start();
              }
              catch (Exception)
              {
              //例外發生則終止迴圈執行
              break;
              }
              }
               
              }
如何傳遞參數給多執行緒
ThreadStart委派沒有傳遞參數的功能,在實際應用上我們常需要傳遞參數,這時就要改用ParameterizedThreadStart 委派ParameterizedThreadStart 委派用法與ThreadStart委派大同小異,只是多了參數傳遞機制。
              private void button3_Click(object sender, EventArgs e)
              {
              //1.建立ParameterizedThreadStart委派
              ParameterizedThreadStart myPar = new ParameterizedThreadStart(RunSample02);
              //2.建立Thread 類別
              Thread myThread01 = new Thread(myPar);
              Thread myThread02 = new Thread(myPar);
              //3.啟動執行緒並帶入參數
              myThread01.Start("我是多執行緒第一號");
              myThread02.Start("我是多執行緒第二號");
              }       
              private void RunSample02(object o)
              {
              string myStr = o as string;
              //string myStr = (string)o;
              if (myStr == null)
              {
              myStr = (string)o;
              }
              else
              {
              for (int i = 0; i < 6; i++)
              {
              Console.WriteLine("{0}:{1}", myStr, Thread.CurrentThread.ManagedThreadId);
              Thread.Sleep(1000);
              }
              }
              }

如何跨執行緒存取UI
當我試著用WinFrom寫多執行緒時,卻出現了以下錯誤訊息
跨執行緒作業無效: 存取控制項 'textBox1' 時所使用的執行緒與建立控制項的執行緒不同。
詢問高手後有三種方法解決:
1.Form.CheckForIllegalCrossThreadCalls = False
2.建立委派
第一種方法,據說不安全,但我也不曉得哪裡不安全http://chhuang.googlepages.com/th_014_.gif,但用起來還蠻方便的。
第二種方法,比較正統使用委派的方式,若爾後需要改任何控制項的文字時(需有text屬性的),呼叫 myU即可。
              private delegate void myUICallBack(string myStr, Control ctl);
              private void myUI(string myStr, Control ctl)
              {
              if (this.InvokeRequired)
              {
              myUICallBack myUpdate = new myUICallBack(myUI);
              this.Invoke(myUpdate, myStr, ctl);
              }
              else
              {
              ctl.Text = myStr;
              }
              }




第三種方法,使用BackgroundWorker,更強大的功能讓我們省去了上述繁雜的動作。

更詳細的UI跨執行緒請參考:Windows Form UI優化入門課 非同步作業
C#範例下載:C#.NET多執行緒.rar
若有謬誤,煩請告知,新手發帖請多包涵http://www.dotblogs.com.tw/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/regular_smile.gif