給一個過程建立一個新的線程是一個簡單的問題,但是還是有一些重要的問題需要強調一下,例如當運行一個新的線程的時候,用AddressOf操作運行的方法或過程並沒有注釋和參數,而且不能返回值,為了解決這個問題,下面有幾種比較簡單的方法,可以給線程設定一些參數,並且從一些獨立的線程的過程中返回值。
1.為新建立的線程設置參數
因為在建立一個新的線程類的時候,只使用了一個AddressOf操作,這樣就不能給一個即將要獨立運行的線程設置一些具有標示性的議論。
一個給線程設置參數的方法就是使用全局變量,采用這種結構後,用戶就能區別線程所使用的一些參數和注釋。不過這樣做,也有一些不足的地方,因為當用戶在調試程序的時候,全局變量會帶來困難,而且要維護代碼也是一件比較困難的事,而且當使用多個獨立線程中對一個過程的拷貝時,事情也將會變得很復雜。
最好的辦法就是把一些需要對自由線程中的方法設置的參數設置成為一個新的線程的屬性的值。這樣做的優點就是每當用戶新建一個新的線程對象的時候,這個對象可以有自己的屬性值,也就是說,它可以具有它自己的參數。
2.從自由線程的過程中返回參數
因為當用戶運行一個獨立的線程的時候,在線程中只能是過程而不能是函數,也不能用ByRef來引用,所以用戶必須通過一些其他的技術來從線程中得到所需要的信息到自己的程序中去。最簡單的辦法就是通過設置全局變量,當某個線程結束以後就給某個全局變量賦值,然而,正如上述這種方法是應該要避免的,而且如果要這樣做的話,用戶還必須事先先判斷線程是不是已經結束了,才能去訪問那些全局變量,這樣的話,無疑降低了程序的效率和准確性。
從一個線程的過程中返回值的最好辦法就是,把需要返回的值作為一個參數建立一個事件,通過執行這個事件,就可以得到所需要的返回值。如果事件運行以後,同時用戶所需要的返回值是某個全局變量的話,可以干脆把這個事件設置為返回全局變量。當線程結束以後,主程序就可以利用那些事件返回的值進行下一步操作。