Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于任务在C中的适当使用的问题#_C#_Wcf - Fatal编程技术网

C# 关于任务在C中的适当使用的问题#

C# 关于任务在C中的适当使用的问题#,c#,wcf,C#,Wcf,我有一个关于这个任务的问题。我有一个WCF应用程序,它有一个将从客户端应用程序调用的ReceiveEmpInfo方法 WCF服务器应用程序: public void ReceiveEmpInfo(string EmpName, string EmpId) { DifferentClass.SaveEmpToDB(string EmpName, string EmpId); return; } 我的要求是我想返回这个方法调用(ReceiveEmpInfo()),一旦我调用了这个方

我有一个关于这个任务的问题。我有一个WCF应用程序,它有一个将从客户端应用程序调用的ReceiveEmpInfo方法

WCF服务器应用程序:

public void ReceiveEmpInfo(string EmpName, string EmpId)
{
    DifferentClass.SaveEmpToDB(string EmpName, string EmpId);
    return;
}
我的要求是我想返回这个方法调用(
ReceiveEmpInfo()
),一旦我调用了这个方法
SaveEmpToDB()
,我就不想保留客户端调用,直到
SaveEmpToDB()
方法将数据保存到数据库。我正在考虑使用Task,但我不确定它是否能满足我的需求

请给我你的建议

谢谢,
乔:是的,会的。调用
Task.Start()
后,您的WCF方法可以返回,任务将在“后台”运行。您必须非常小心,尤其是在IIS中运行此WCF服务时。如果这些任务运行时间很长,IIS应用程序池关闭(或重新启动),您的任务将在工作过程中受到潜在的影响。
顺便说一句:我假设您指的是:

使用回调,对db或其他对象进行异步调用,
参见示例

这很像这篇文章:


我认为流行答案中的链接应该会有所帮助。

如果这是一个单向的“先开火后忘记”操作,您可以简单地进行该操作。这不会在方法执行期间阻塞客户端

[ServiceContract]
interface ISomeContract
{
   [OperationContract(IsOneWay = true)]
   void ReceiveEmpInfo(string EmpName, string EmpId)
}

如果我的服务是单服务(InstanceContextMode=single),IsOneWay将如何工作?@user654261我认为这不会引起任何问题。我刚刚创建了一个原型,运行良好。