2009-05-19 4 views
1

새 스레드를 만들고 여러 매개 변수를 보내고 대리인에게보고하려고합니다.VB9 여러 매개 변수가 포함 된 새 스레드

VB8에서는 새로운 클래스/구조 또는 대리자를 도입해야하기 때문에 항상 싫습니다.

VB9에서 더 좋은 방법이 있습니까?

Dim Th As New Thread(AddressOf DoStuff) 
    Th.Start(param1, param2, AddressOf ReportStatus) 

내가 LINQ 및 람다 좋은 아니에요, 그래서 나는 누군가가 나에게이 작업을 수행하는 멋진 트릭을 보여주는 것이라고 호핑 해요 :

나는이 같은 솔루션 뭔가를 찾고 있어요.

답변

2

은 스레드 생성자에 익명 함수를 전달할 수 있습니다.

Dim Th = New Thread(Sub() DoStuff(param1, param2, AddressOf ReportStatus)) 

하지만 불행히도 VB9에는 익명의 하위가 없습니다 (VB10에 있음 - C#에서는 이미 작동 함).

+0

OK, 나는 VB9에서 가능하다고 생각했다. MS에 수치 스럽다. –

+0

MS에 수치가있는가? MS와 같은 사람들이 나쁜 이름을 붙입니다. Microsoft는 모든 단일 릴리스에서 VB 및 C# 언어를 일관되게 향상 시켰습니다. 신용이 가치가있는 곳에 신용하지 말라는 부끄러운 줄 알아. –

1

아니요. VB9의 새로운 기능은 없습니다.

0

어쩌면 이미 익숙 하긴하지만 응용 프로그램에 따라 ThreadPool을 사용하는 것이 유용하고 쉽습니다. ThreadPool.QueueUserWorkItem을 사용하여 매개 변수를 보내는 방법에 대해서는 많이 알지 못하지만 this 페이지는 람다 식과 익명 형식이 포함 된 좋은 자습서를 제공하는 것으로 보입니다. 그것은 C에서 #하지만 VB로 변환 것이라고 확신 해요.

+0

실제로 나는 비슷한 것을 시도하고 있습니다. 그러나 그 페이지는 C#입니다. (저는 C#을 읽을 수 있고 Linq와 lambad를 제외하고 변환 할 수 있습니다 :)). 또한 VB.NET에 얼마나 많이 적용 할 수 있는지 잘 모르겠다. –