J'essaie de créer une application qui se connecte à Internet et consomme web services
pour chacune de ses opérations. En ce qui me concerne, j'aimerai utiliser async method
qui J'utilise déjà pour obtenir une collection de contacts. Je me suis rendu compte que quand je fais la même chose pour les groupes (ce qui signifie obtenir des groupes asynchrones) j'ai des erreurs dans les appels, mais quand j'utilise un appel normal Donc j'ai fait des recherches en ligne et j'ai trouvé que beaucoup de gens ont le même problème.
Certains d'entre eux sont invités à utiliser WCF
(pour lequel je ne sais pas prise) .J'aimerais savoir s'il y a une autre façon de surmonter cela. Si non, quelqu'un peut-il me diriger vers une ressource fiable en ligne et m'aider à passer à travers? Merci pour la lecture et l'aide voici mon code:Echec des appels asynchrones multiples sur la méthode webservice dans l'application
public partial class main : Window
{
//...
private static vmcSession session;
private MyService service = new MyService();
private contactInfo[] loadedcontact;
//....
public main()
{
InitializeComponent();
//service.addContactCompleted +=new addContactCompletedEventHandler(addContactCompleted);
service.getContactsCompleted += new getContactsCompletedEventHandler(getContactsCompleted);
service.getGroupsCompleted += new getGroupsCompletedEventHandler(getGroupsCompleted);
fillContents();
}
private void getGroupsCompleted(object sender, getGroupsCompletedEventArgs e)
{
try
{
groupListBox.ItemsSource = e.Result;
}
catch (Exception ex)
{
MessageBox.Show(ex.InnerException.Message);
}
}
private void getContactsCompleted(object sender, getContactsCompletedEventArgs e)
{
try
{
loadedcontact = e.Result;
contactListBox.ItemsSource = loadedcontact;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void addContactCompleted(object sender, addContactCompletedEventArgs e)
{
throw new NotImplementedException();
}
public void fillContents()
{
displayUserInformation();
loadContacts();
service.getGroupsAsync(session.key, null);
//groupListBox.ItemsSource = service.getGroups(session.key, null);
cmbSenderIds.ItemsSource = service.getSenderIds(session.key, null);
if (cmbSenderIds.Items.Count > 0)
{
cmbSenderIds.SelectedIndex = 0;
}
loadGrid();
}
public void loadContacts()
{
service.getContactsAsync(session.key, null);
}
public void displayUserInformation()
{
lblName.Content = session.user.firstName;
lblEmail.Content = session.user.email;
lblCreditValue.Content = Decimal.Ceiling(session.user.balance).ToString();
}
public void loadGrid()
{
try
{
hitoryGrid.ItemsSource = service.viewMessages(session.key, null).ToList();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Quelles sont les erreurs? –
le message InnerException était: 'il y avait une erreur lors du traitement asynchrone.Un seul état State est requis pour plusieurs opérations simultanées asynchrones être en cours' merci pour la réponse –
Pouvez-vous poster du code? Appellez-vous SleepAsync? –