我创建了一个服务器并将我的客户端生成为异步客户端。
所以当我连接时,我是异步的。没关系。
我的客户端(回调方法)上有一个从服务器接收数据的方法。服务器也使用异步方法发送此数据。
要在我的客户端上接收这些数据,我希望它只有一个像我这样生成的方法:
public void SendToClient(string dataToSend)
{
}
虽然它有一个奇怪的名字,但这是我所期望的方法 - 它是在收到数据时调用的。
然而,它也产生了这些方法:
public IAsyncResult BeginSendToClient(string dataToSend, AsyncCallback callback, object asyncState)
{
throw new NotImplementedException();
}
public void EndSendToClient(IAsyncResult result)
{
throw new NotImplementedException();
}
我不知道如何使用它们。这就像异步接收或其他东西。我如何使用它们来接收数据?
答案 0 :(得分:1)
通常,您不希望回调契约操作是异步的。您将被迫实现难以正确的异步编程模型,在这种情况下是不必要的。
你应该能够在服务器端没有实现异步版本而只是填写同步版本。在客户端(异步回调契约的调用者),WCF应该做正确的事情,并且当数据到达你的终端时,将在后台调用同步版本。
作为旁注,似乎客户将此报告为错误,但看起来它没有得到解决: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=293507