我试图使用匿名函数创建一个新的线程,但是我一直在遇到错误。下面是我的代码:
New Thread(Function()
'Do something here
End Function).Start
这里是我遇到的错误:
新的错误:
语法错误
End Function:
'End Function' 必须在匹配的 'Function' 之前。
我试图使用匿名函数创建一个新的线程,但是我一直在遇到错误。下面是我的代码:
New Thread(Function()
'Do something here
End Function).Start
这里是我遇到的错误:
新的错误:
语法错误
End Function:
'End Function' 必须在匹配的 'Function' 之前。
使用AddressOf
运算符指向一个已有的方法
Sub MyBackgroundThread()
Console.WriteLine("Hullo")
End Sub
然后使用以下代码创建并启动线程:
Dim thread As New Thread(AddressOf MyBackgroundThread)
thread.Start()
或者使用 lambda 函数。Dim thread as New Thread(
Sub()
Console.WriteLine("Hullo")
End Sub
)
thread.Start()
在VB中,它被称为lambda表达式。语法是错误的,您需要实际声明一个Thread类型的变量以使用New运算符。您创建的lambda必须是Thread类构造函数传递的参数的有效替代品。这些都不接受返回值委托,因此必须使用Sub而不是Function。以下是一个随机示例:
Imports System.Threading
Module Module1
Sub Main()
Dim t As New Thread(Sub()
Console.WriteLine("hello thread")
End Sub)
t.Start()
t.Join()
Console.ReadLine()
End Sub
End Module
Dim worker As New Thread(New ThreadStart(Function() 42))
多行文本:
Dim worker As New Thread(New ThreadStart(Function()
' Do something here
End Function))