应用程序中的Web服务方法上的多个异步调用失败,但异常

时间:2010-05-12 21:09:40

标签: c# wpf winforms web-services wcf

我正在尝试创建一个连接到互联网的应用程序,并为每个操作消耗web services。就我而言,我想使用async method我是哪个我已经意识到,当我为群体做同样的事情(意思是让群体异步)时,我在呼叫中遇到错误,但是当使用普通呼叫时,我就没有。所以我没有在网上进行了一些研究,发现很多人都有同样的问题 他们中的一些人被要求使用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);
        }
    }     

}

1 个答案:

答案 0 :(得分:6)

解决它。有两个方法使用异步调用,一个带有附加参数唯一ID。需要调用ID,所以我将新GUID传递给它,就是它。谢谢你试图帮助我