C# - 从WCF Rest Service返回进度

时间:2016-05-13 19:52:51

标签: c# wcf rest progress

在我的服务中,我目前有一些任务和一个不断更新List的ReportProgress方法。如何将该列表返回给我的客户端主机应用程序?

服务方:

public async void BeginSync(string dbId)
{
    var progressIndicator = new Progress<string>(ReportSyncProgress);
    var output = await BeginSyncTaskAsync(dbId, progressIndicator);                             
}

...在任务中我有循环中的进度报告:

while ((output = process.StandardOutput.ReadLine()) != null)
{
    progress.Report(output);        
}

...这是我的报告方法:

public void ReportSyncProgress(string value)
{
    // report by appending to global list
    progressOutput.Add(value);
}

progressOutput是一个List,我需要我的客户端在更新时实时接收它。

谢谢!

1 个答案:

答案 0 :(得分:1)

因为Rest服务没有会话,所以无法进行正常的WCF回调方法。相反,您需要做的是传递某种令牌,然后使用该令牌获取进度信息。

user_id       Name               sum_total_time

1               James Green          62
2               Robert Cox           69
3               Andy Roger           56
4               Brian Harper         0
5               Angel Lee            0
6               Andrew Martin        55
..... 
.....
Nth Name                             Nth value