我做了一个简单的WCF客户端并检查了“创建异步方法”框。这些方法做了什么?

时间:2009-09-19 19:37:13

标签: wcf asynchronous client

我创建了一个服务器并将我的客户端生成为异步客户端。

所以当我连接时,我是异步的。没关系。

我的客户端(回调方法)上有一个从服务器接收数据的方法。服务器也使用异步方法发送此数据。

要在我的客户端上接收这些数据,我希望它只有一个像我这样生成的方法:

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();
}

我不知道如何使用它们。这就像异步接收或其他东西。我如何使用它们来接收数据?

1 个答案:

答案 0 :(得分:1)

通常,您不希望回调契约操作是异步的。您将被迫实现难以正确的异步编程模型,在这种情况下是不必要的。

你应该能够在服务器端没有实现异步版本而只是填写同步版本。在客户端(异步回调契约的调用者),WCF应该做正确的事情,并且当数据到达你的终端时,将在后台调用同步版本。

作为旁注,似乎客户将此报告为错误,但看起来它没有得到解决: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=293507