2011-04-12 105 views
0

我試圖做一個服務器程序的一個遊戲,我需要在一個窗口形式的應用程序運行3個額外的線程。所有的線程需要能夠訪問相同的變量(線程1:將要被甩開了我的數據庫用戶命令和執行它們,線程2:將要更新所有用戶的數據和thread3:將要發送的所有新的變量回數據庫)。我已經研究過後臺線程,我不知道如果多數民衆贊成要做的事情,我想他們的待辦事項(他們看起來像他們可以運行我的代碼,但它看起來像他們將很難時間以相同的變量工作的所有線程。)多線程問題

,所以我想我的問題是,這是可能的,什麼是做到這一點的最佳方式,將後臺工作人員和調用的伎倆?我會在做什麼樣的問題,任何人都有更好的主意。

在一個側面說明,我有另外一個問題,多數民衆贊成與香港專業教育學院嘗試了一堆的時間來完成這個只用簡單的線程。現在根據我的理解,我在另一個線程上的所有工作都不應該鎖定我的UI,但它確實如此。也許我做線程走錯了路,我的代碼看起來像

dim newthread as new system.threading.thread(addressof runmycode) 
newthread.start()` 

這段代碼並不確切,但爲什麼要使用線程這樣鎖住用戶界面?它不應該分開運行嗎?

回答

0

您需要創建對象類的「新」實例被「擰」,揭露你想調用,例如功能

Public Class MyNewCode 
    Public Function runmycode() 

     ' My code goes here ' 

    End Function 
End Class 


Public Class frmMain ' or under an onClick event or whatever.... ' 
    Dim s As New MyNewCode ' This is the class above ' 
    t = New System.Threading.Thread(AddressOf s.runmycode) ' This is the function above ' 
    t.start() 
End Class 
+0

提供這釋放了我的用戶界面,我認爲這正是即時尋找。 – tye 2011-04-12 18:39:21

0

這是我寫了一段教程,它引導你在VB2008中創建一個基本的多線程程序。使用VB2010,如果你願意,你可以刪除代表,但這個想法幾乎是一樣的。

Creating a simple multi-threaded VB.Net application

+0

非常感謝你的鏈接,我今晚會去通過它。 – tye 2011-04-12 18:38:58