我有一个客户端服务器应用程序。客户端将通过wcf调用将数据发送到服务器。但服务器需要大约1分钟来处理数据。所以我想从服务器到客户端的进度。我如何使用wcf服务。请给我一个例子。从服务器到客户端的进度指示wcf-c#
1
A
回答
0
可以具有服务包含用于轮询进展的另一种方法和调用与标识符这两种方法,例如:
public static void Main()
{
List<int> dataToProcess = something....
int requestID = 1;
MyService.MyMethodToProcess(dataToProcess, requestID);
}
另一个轮询线程(更新UI或任何):
double precentage = MyService.PollMyMethodToProcess(requestID);
myUIProgressBar.Update(precentage);
MyMethodToProcess示例:
public void MyMethodToProcess(List<int> data, int requestID)
{
idToProgress.Add(requestID, 0);
for (int i = 0; i < data.Count; i++)
{
prossessData(data.ElementAt(i));
idToProgress[requestID] += 100/(double)data.Count; //Updates the progress.
}
}
ConcurrentDictionary<int, double> idToProgress = new ConcurrentDictionary<int, double>();
而在轮询方法中:
public double PollMyMethodToProcess(int requestID)
{
return idToProgress[requestID];
}
做这将是通过与客户的正常通信推动进步的服务,虽然这将是更加困难和不符合成本效益的正确方法...
0
提供一个回拨合同,以便您的服务可以在流程阶段发生变化时回拨您的客户端,例如已将大量字节保存到文件中。
相关问题
- 1. 的Node.js服务器操作的客户端进度指示器
- 2. 的Http从客户端加密到服务器和服务器到客户端
- 3. 客户端 - 服务器(从服务器到客户端的文件传输)
- 4. WCF服务器/客户端回调,从客户端到服务器的回复
- 5. 在客户端显示服务器批处理进度
- 6. 从服务器回拨到客户端
- 7. JavaScript:从服务器到客户端
- 8. NodaTime:从服务器到客户端
- 9. 从服务器发送到客户端
- 10. 查看客户端从服务器下载进度
- 11. 从TLS客户端提取服务器名称指示(SNI)hello
- 12. UpdatePanel - 从服务器端显示错误到客户端div
- 13. python服务器的客户端改进
- 14. Thread.CurrentCulture是指客户端或服务器
- 15. 服务从网络服务器二进制文件,客户端
- 16. 简单的Java客户端 - 服务器:客户端doent连接到服务器
- 17. 客户端到服务器端调用
- 18. 客户端数据到服务器端
- 19. 客户端到服务器端Node.js
- 20. 在服务器端运行线程并在客户端显示进度?
- 21. 从客户端发送到服务器,从服务器发送到客户端在java中
- 22. Java:将文件从服务器传输到客户端,从客户端传输到服务器
- 23. 服务器和客户端之间的通信进度
- 24. 消息,从服务器的客户端
- 25. 发送从JavaScript(客户端)的值来表示(服务器端)
- 26. 的NodeJS:客户端到客户端通过服务器
- 27. 服务器到客户端通知/ Web服务(jax-ws)到客户端通信
- 28. ASP.Net客户端模式进度指示器
- 29. 进行客户端 - 服务器聊天 - 遇到连接客户端到客户端的问题
- 30. WCF的服务器/客户端conected客户服务器