如何从vb中线程中使用的函数获取返回值。净

时间:2019-06-17 18:14:43

标签: vb.net

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中获得该响应。我该怎么办?还是有其他解决方法,请提出建议

1 个答案:

答案 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)