我在 Silverlight 5 应用程序中使用 WCF 服务。
在我的一个服务电话中,我正在做一项耗时的工作。完成该事件需要 1 或 2 分钟。我没有用繁忙的指示器阻塞 UI,因此用户仍然可以与应用程序交互。
问题是当我进行第一次服务调用时,它会执行一些耗时的操作。当用户加载其他一些服务时,我的第二个服务调用在第一个服务完成之前不会被处理。
如何在单独的线程中执行耗时的服务调用以避免其他调用等待此服务完成?
网络服务代码
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TestService
{[OperationContract]
public bool PerformFileScan(int fileID)
{
//Time Consuming Process
}
}
CS
client.PerformFileScanAsnc(docId);
client.PerformFileScanCompleted += new EventHandler<.PerformFileScanCompletedEventArgs>(client_PerformFileScanCompleted);