具有异步函数的C#WCF会话

时间:2012-05-09 05:03:10

标签: wcf session


在客户端关闭会话时创建了异步函数(例如后台自动电子邮件)的wcf会话会发生什么情况,即client.Close()/ client.Abort()?

换句话说,如果有一些如下:

[OperationContract(IsOneWay = true, IsInitiating = true, IsTerminating = false)]
void RegisterUser(string user);

[OperationContract(IsOneWay = false, IsInitiating = false, IsTerminating = false)]
void SendEmails(T[] listofDetails);

[OperationContract(IsOneWay = false, IsInitiating = false, IsTerminating = true)]
void UnRegisterUser();

和SendEmails创建一个任务或异步函数(异步调用未完成客户端),它在后台发送所有电子邮件。 并且用户在所有电子邮件发送完成之前终止会话?会话是否仍处于打开状态并等待或关闭,电子邮件会一直持续到完成或发生什么事情为止?

谢谢所有
对不起,如果问题有点模糊:/

1 个答案:

答案 0 :(得分:0)

在您的示例中,您定义了一个名为SendEmails的请求 - 响应操作,该操作返回void。这与异步操作不同。

我假设您正在操作方法中创建一个新的后台线程,然后消失并发送电子邮件。

在这种情况下,一旦操作方法执行完毕,操作将向调用者返回void。如果客户端然后终止通道,后台线程将继续其工作。