Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Streaming Web Services

29K
31 января 2009 года
Daniel Lavrushin
30 / / 26.10.2008
Здравствуйте,

помогите решить проблему с веб сервисами, Так как своего опыта не хватает.

Задача состоит в том, чтобы дождаться окончания получения данных (из БД заливаются данные на локальный компьютер в xml - может быть несколько мегабайт) с сервера.

Если не дожидаться асинхронного выполнения сервиса и закрыть диалоговое окно, то программа вылетает с ошибкой
 
Код:
Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

Решал следующими методами:
На сервере
- вебсервис XmlDocument

На клиенте
Код:
private void thrd(object state)
        {


            SalesForceDB = new SalesForceDB.SalesForceDB();
            SalesForceDB.Credentials = CredentialCache.DefaultCredentials;
            SalesForceDB.MainCompanyListCompleted += new MainCompanyListCompletedEventHandler(SalesForceDB_MainCompanyListCompleted);
            SalesForceDB.MainCompanyListAsync();
            Thread.CurrentThread.Join();
            Thread.Sleep(TimeSpan.FromSeconds(20));
        }

thrd - Thread, стартующий по вызову.

Код:
void SalesForceDB_MainCompanyListCompleted(object sender, MainCompanyListCompletedEventArgs e)
        {
            string FileName = @"MainProspects.xml";
            XmlDocument xml = new XmlDocument();
            xml.Load(FileName);
            xml.RemoveAll();
            XmlNode nodes = e.Result;
            xml.AppendChild(xml.ImportNode(nodes, true));
            xml.Save(FileName);
// обновление прогрессбара
            BeginInvoke(new UpdateProgressDelegate(UpdateProgress), 20);


Расскажите, как надо правильно :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог