Public function myfn1(byval pRequest as string) as string
Dim param(1) object
param(0)=pRequest
Dim T as new thread(Addresof myfn2)
T. Start(param)
End function
Private function myfn2(byval pReq as string) as string
'////some stuff here////
Return lstrResponse
End function
这里myfn1
正在接受来自用户的请求。有时,这些请求可能一次并发。因此,我在myfn1
中使用了线程。 Myfn2
实际上正在处理请求并返回响应。因此,我愿意在线程处理任务后在myfn1
中获得该响应。我该怎么办?还是有其他解决方法,请提出建议
答案 0 :(得分:1)
您应该研究使用Async / Await结构:https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/async/
要在单独的线程上执行CPU绑定工作,有两个选项。我喜欢在这里使用Task.Run()
文档:https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.run?view=netframework-4.8
您可以await
创建的任务并在完成后获得结果,例如:
SomeVariable = Await Task.Run(Function() FunctionName)