Silverlight C#webservices等待进程
问题描述:
我正在开发一个silverlight应用程序,我使用webservices。服务器负责处理一些文本,获取音素信息,转换为视频,生成音频并编码为mp3。返回visemes列表和创建音频文件的路径。然后音频流式传输到客户端。Silverlight C#webservices等待进程
但现在,我有一个问题。我需要服务器等待完整的音频编码创建。有时,音频还没有准备好,而且它不会为客户端流式传输。我已经尝试过thread.join,但它对长文本也有同样的问题。
应该如何解决此问题的最佳方法?
在此先感谢
答
也许我误解你的问题,但我想这应该不是当前的大问题,因为异步模式实际上应该帮助你...我这种情况的直观理解是这样的:
myWebServiceClient.ProcessTextCompleted += (sndr, evnt) =>
{
IsBusy = false;
var url = evnt.Result.PathToCreatedAudioFile;
PlayAudioFile(url);
};
IsBusy = true;
myWebServiceClient.ProcessTextAsync("abcdefg");
也许你可以给出更多的信息,为什么这不适合你的情况。
干杯,亚历克斯
我认为这个问题是因为服务是异步,因此不会等待所有操作完成,它只是将所有的信息。但由于编码功能可能需要更长时间,web服务会获取所需的信息(流地址等),但文件尚未准备就绪。我需要等待编码过程。谢谢您的帮助! :) – 2010-05-18 09:23:46
那么,只有服务器知道处理完成的时间,所以我认为在它实际完成处理请求和文件准备就绪之前它不应该返回任何内容。所以也许问题在于你的服务器端实现,而不是客户端。 – 2010-05-18 09:39:42
是的,这就是为什么我创建了一个线程来编码,然后thread.join方法。但它不起作用。 :( – 2010-05-18 10:31:46