2010-05-14 4 views
2

Je développe une application Silverlight, où j'utilise des services web. Le serveur est responsable du traitement du texte, de l'information du phonème, de la conversion en visèmes, de la génération de l'audio et de l'encodage en mp3. Une liste de visemes et un chemin d'accès au fichier audio de création sont renvoyés. Ensuite, l'audio est diffusé au client.Silverlight C# webservices attendre le processus

Mais maintenant, j'ai un problème. J'ai besoin que le serveur attende la création complète de l'encodage audio. Parfois, l'audio n'est pas prêt et il n'est pas diffusé pour le client. J'ai essayé thread.join mais il a le même problème pour les longs textes.

Quelle devrait être la meilleure façon de résoudre ce problème?

Merci à l'avance

Répondre

1

peut-être je mal compris votre question, mais je pense que cela ne devrait pas présenter un gros problème comme motif async devrait réellement vous aider ... Ma compréhension intuitive de ce scénario serait quelque chose comme ceci:

Peut-être que vous pourriez donner un peu plus d'informations sur pourquoi cela ne fonctionne pas pour votre cas.

Cheers, Alex

+0

Je pense que le problème est que le service est async il n'attend pas toutes les opérations pour terminer, il envoie simplement toutes les informations. mais comme la fonction de codage peut prendre plus de temps, le service Web obtient l'information requise (adresse de flux, etc.) mais le fichier n'est pas encore prêt. Je dois attendre le processus d'encodage. Merci pour l'aide! :) –

+0

Eh bien, seulement le serveur sait quand exactement le traitement est terminé, donc je pense qu'il ne devrait rien retourner avant qu'il ait fini de traiter la demande et le fichier est prêt. Alors peut-être que le problème réside dans votre mise en œuvre côté serveur, pas le côté client. –

+0

Oui, c'est pourquoi j'ai créé un thread à encoder, puis la méthode thread.join. mais ça ne marche pas. :( –

Questions connexes