我需要在单独的线程上创建一个 WCF ChannelFactory。我现在面临的问题是变量svc
并不总是返回值:
...
Dim svc As T = Nothing
Dim svcft As New DuplexChannelFactory(Of T)(caller, ep)
ThreadPool.QueueUserWorkItem(New WaitCallback(Sub(obj) svc = svcft.CreateChannel()))
...
大多数时候svc
会返回一个空值,但有时它确实会返回一个很好的参考。我究竟做错了什么?
我根据 YK1 的评论修改了我的代码,如下所示。它仍然没有解决问题 - svc 仍然不总是设置:
Task.Factory.StartNew(
Sub()
svc = svcft.CreateChannel()
End Sub
).ContinueWith(
Sub()
svcft = Nothing
End Sub
)
If svc Is Nothing Then
Throw New Exception("Creating service reference failed.") '<== get the error here...
End If