我正在尝试使用System.Threading.Tasks库以100%异步方式启动WCF服务调用。当我在下面的代码示例中调用HandleChange方法时,它似乎仍然等待客户端服务调用完成后再继续通过该行。我想做这样的事情,但不是“举起节目” - 意思是我希望调用它的方法只是在客户端调用完成之前移动到下一行代码。我可能只是错误地接近这一点,所以如果有人能够提供我所做错事的见解,或者我如何能够实现我在这里想要的东西,我将不胜感激。
Imports System.Threading.Tasks
Public Class ChangeWrapper
Public Shared Sub HandleChange(ByVal orgEntity As MainObjectBase, ByVal newEntity As MainObjectBase)
Parallel.Invoke(Sub()
Using client As New EventQueueService.EventQueueClient
client.QueueDecision(orgEntity, newEntity)
End Using
End Sub)
End Sub
End Class
编辑:根据SLaks答案反映我的更改
Imports System.Threading.Tasks
Public Class ChangeWrapper
Public Shared Sub HandleChange(ByVal orgEntity As MainObjectBase, ByVal newEntity As MainObjectBase)
Task.Factory.StartNew(Sub()
Using client As New EventQueueService.EventQueueClient
client.QueueDecision(orgEntity, newEntity)
End Using
End Sub)
End Sub
End Class
答案 0 :(得分:2)
Parallel
类用于并行运行,但是同步运行。
要异步运行某些内容,请使用Task
类
你想要Task.Factory.StartNew()
。