인터넷에 연결되는 응용 프로그램을 만들고 모든 작업에 대해 web services
을 사용하려고합니다. 나는 회신 할 때 async method
을 사용하고 싶습니다. 나는 연락처의 컬렉션을 얻으려고 이미 사용하고있다. 나는 그룹에서 (비동기 그룹을 얻는 것을 의미하는) 동일한 작업을 수행 할 때 호출에서 오류가 발생한다는 것을 알았지 만, 정상적인 호출을 사용하면 ins't . 그래서 나는 온라인에서 조사를했고 많은 사람들이 같은 문제를 가지고 있음을 발견했다.
그들 중 일부는 WCF
을 사용하도록 요청되었습니다 (잭에 대해서는 모르겠다).이를 극복 할 다른 방법이 있는지 알고 싶습니다. 그렇지 않다면 누군가 온라인에서 신뢰할 수있는 리소스를 가르쳐 줄 수 있습니까? 읽기와 여기 도움을 주셔서 감사합니다 내 코드입니다 :응용 프로그램에서 웹 서비스 메서드에 대한 여러 비동기 호출이 예외가 발생하여 실패합니다.
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);
}
}
}
어떤 오류가 있습니까? –
InnerExeption 메시지가 : '비동기 처리 중에 오류가 발생했습니다. 여러 비동기 동시 작업이 처리되지 않아야합니다.' 답장을 보내 주셔서 감사합니다. –
코드를 게시 할 수 있습니까? SleepAsync를 부르시겠습니까? –