我将 WCF 服务设置为 PerCall
我想知道如何从客户端发送 Start 调用以启动长时间运行的进程,并发送 Cancel 命令以取消它
我的 WCF 服务看起来像这样
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class Service1 : IService1
{
CancellationTokenSource cancelToken = new CancellationTokenSource();
public void Start()
{
var compute = Task.Factory.StartNew(StartLongRunningTask, cancelToken.Token);
}
public void Stop()
{
cancelToken.Cancel();
}
private void StartLongRunningTask()
{
//process here
}
}
我想这里的问题是,每次调用服务器时,它都会被视为一个新请求。
那么在WCF中应该如何启动和取消一个长时间运行的任务呢?
编辑:我将它作为 Windows 服务托管