耗时的WCF服务调用会阻止其他WCF服务调用。
我在Silverlight 5应用程序中使用WCF服务 在我的一次服务电话中,我正在做一项耗时的工作。完成活动需要1到2分钟。我没有用繁忙的指示器阻塞UI,因此用户仍然可以与应用程序交互 问题是,当我进行第一次服务调用时,它会执行一些耗时的操作。当用户加载其他服务时,在第一个服务完成之前,不会处理我的第二个服务调用 如何在单独的线程中执行耗时的服务调用以避免其他线程 正在等待此服务完成的呼叫 Web服务代码耗时的WCF服务调用会阻止其他WCF服务调用。,wcf,silverlight,web-services,wcf-data-services,Wcf,Silverlight,Web Services,Wcf Data Services,我在Silverlight 5应用程序中使用WCF服务 在我的一次服务电话中,我正在做一项耗时的工作。完成活动需要1到2分钟。我没有用繁忙的指示器阻塞UI,因此用户仍然可以与应用程序交互 问题是,当我进行第一次服务调用时,它会执行一些耗时的操作。当用户加载其他服务时,在第一个服务完成之前,不会处理我的第二个服务调用 如何在单独的线程中执行耗时的服务调用以避免其他线程 正在等待此服务完成的呼叫 Web服务代码 [ServiceContract(Namespace = "")] [AspNetCom
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TestService
{[OperationContract]
public bool PerformFileScan(int fileID)
{
//Time Consuming Process
}
}
cs
client.PerformFileScanAsnc(docId);
client.PerformFileScanCompleted+=新事件处理程序(client\u PerformFileScanCompleted);
您有两个选择:
Task.Factory.StartNew(…)
servicebhavior
属性装饰服务实现,并将ConcurrencyMode
设置为Multiple
:
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
public class YourService
{
}
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
public class YourService
{
}