2011-04-12 5 views
0

게임용 서버 프로그램을 만들려고하고 있는데, 윈도우 폼 앱에서 3 개의 추가 스레드를 실행해야합니다. 모든 스레드가 동일한 변수에 액세스 할 수 있어야합니다 (thread1 : 내 데이터베이스에서 사용자 명령을 가져 와서 실행합니다. thread2 : 모든 사용자 데이터를 업데이트 할 예정이며 thread3 : 모두를 보낼 것입니다. 새로운 변수는 데이터베이스에 돌아 간다.) 백그라운드 스레드를 조사해 봤지만, 내가 원하는대로 할 수 있는지 모르겠다. (내 코드를 실행할 수있는 것처럼 보이지만, 힘들 것 같다. 모든 스레드에 대해 동일한 변수와 함께 작업 시간.)멀티 스레딩 질문

그래서 내 질문은,이 가능한 일이며, 이것을 달성하는 가장 좋은 방법은, 배경 노동자와 트릭을 할 것이라고? 내가하는 일에 어떤 문제가 있는지, 누군가는 더 좋은 아이디어를 가지고있다.

사이드 노트에서 관련 스레드는이 간단한 스레드를 사용하여 여러 번 시도해 보았습니다. 이제는 다른 스레드에서 내 작업을 모두하는 것이 우리 UI를 잠그지 않아야한다는 것을 이해합니다. 어쩌면 잘못된 방향으로 스레드하고 메신저, 내 코드는

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

이 코드 같은 것이 정확하지 않고,이 같은 이유를 사용하는 것 스레드가 UI를 잠글 보인다? 별도로 실행하면 안됩니까?

답변

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

이 내 UI를 자유롭게 제공,이 메신저를 찾고 정확히 생각합니다. – tye

0

다음은 자습서입니다. VB2008에서 기본 멀티 스레딩 프로그램을 만드는 과정을 안내합니다. VB2010을 사용하면 원하는 경우 대리인을 제거 할 수 있지만 생각은 거의 같습니다.

Creating a simple multi-threaded VB.Net application

+0

링크를 통해 매우 고마워, 오늘 밤에 그것을 통해 갈 메신저. – tye