能够启动这样的线程会不会很好。
Sub DoStuff()
Using MyThead = New Threading.Thread()
'Do stuff on MyThread.
End Using
End Sub
编写代码的代码要少得多:
Sub DoStuff()
Dim MyThread As New Threading.Thread(AddressOf DoStuffThread)
MyThread.Start()
End Sub
Sub DoStuffThread()
'Do Stuff
End Sub
答案 0 :(得分:6)
使用匿名委托在C#中已经可以实现(噪点更多):
new Thread(() => {
// do stuff on thread
}).Start();
并将通过多行lambdas在VB 10中得到支持:
New Thread(Sub()
' do stuff on thread
End Sub).Start()
(我可能有VB语法错误,我还没有真正使用过VB 10。)
答案 1 :(得分:1)
所以在你的例子中......将创建一个包含代码的线程,直到结束使用并开始并行执行?
不,我根本不喜欢这样,不太清楚发生了什么。如果您想象它的工作方式不同,请更新您的问题以描述您的概念。
答案 2 :(得分:1)
End Using
之后的代码何时运行?是否等到线程结束,或者Using
块是否立即返回?如果它等到线程完成,那么启动线程的重点是什么?但如果不等待,那么如果你想获得线程的返回值,你会怎么做?
对于线程,确实存在比您提到的标准惯用语更优雅的习语。例如,在C#中,您可以使用匿名委托做同样的事情,而C#4.0有各种与线程相关的工具。但是你的例子没有说明其中一个。