2016-03-08 1 views
0

J'ai un morceau de code qui appelle quelque chose comme un service Webproblème de synchronisation en C# services

iResult = Proxy.Call(request, endpoint);

Je suis confronté au problème ci-dessous.

Le service modifie la base de données. Mais il faut du temps pour réfléchir dans la base de données. Pendant ce laps de temps mon flux d'exécution avance et il me reste des anciennes données et les données réelles se reflètent dans la base de données plus tard. Comment puis-je m'attaquer à cette situation?

+0

Pouvez-vous fournir un code de méthode ImportPendingUtilityBills de service Web? –

+0

Je suppose que ImportPendingUtilityBills s'exécute sur un thread séparé? pouvez-vous appeler Thread.Join sur cela? – Steve

+0

@Steve Yup il doit être sur un fil séparé. Son fonctionnement sur une machine distante. –

Répondre

0

Vous devez effectuer cet appel avec la méthode await.

juste pour référence Attendent vous pouvez lire ci-dessous

Understand Await and Async

+0

Comment attendre va s'attaquer à cela? –

+0

@Puneet Je ne peux pas appeler le service web en utilisant await. :(Il n'est pas conçu comme ça –

+0

@SarveshMishra vous pouvez jeter un coup d'oeil sur le lien ci-joint.attendez que l'exécution attende le retour du contrôle, et c'est ce qui doit être fait ici –