Silverlight 5 アプリケーションで WCF サービスを使用しています。
サービス コールの 1 つで、時間のかかる作業を行っています。イベントが完了するまでに 1 ~ 2 分かかります。ビジー インジケーターで UI をブロックしていないため、ユーザーは引き続きアプリケーションを操作できます。
問題は、最初のサービス呼び出しを行うときに、時間のかかる操作を実行することです。ユーザーが他のサービスをロードすると、最初のサービスが完了するまで 2 番目のサービス呼び出しが処理されません。
このサービスの完了を待機する他の呼び出しを避けるために、時間のかかるサービス呼び出しを別のスレッドで実行するにはどうすればよいですか?
Web サービス コード
[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);