powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF, IAsyncResult, DataGridView... заполнение
2 сообщений из 2, страница 1 из 1
WCF, IAsyncResult, DataGridView... заполнение
    #35654761
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! Встала проблема при работе с асинхронными вызовами WCF.
Есть следующий код:
Код: plaintext
obj.BeginSelectObject(new User(), new AsyncCallback(this.OnRecieveUsers), obj);
Вызываем операцию WCF асинхронно из главной формы приложения.
Операция заверщает выполнение:
Код: plaintext
1.
2.
3.
4.
5.
private void OnRecieveUsers(IAsyncResult ar)
{
object o = ((IHDInterface)ar.AsyncState).EndSelectObject(ar);
usr = o as List<User>;
FillUsers();
}
Метод FillUsers() обновляет содержимое DataGridView на главной форме:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
private void FillUsers()
{
if (usr == null)
{
UsersListDGV.Enabled = false;
return;
}
UsersListDGV.DataSource = usr;
}
Я так понимаю что по выполнению события OnRecieveUsers(IAsyncResult ar) мы снова возвращаемся в основной поток или нет ?
Далее при выполнении имеем ошибку:
Код: plaintext
1.
System.InvalidOperationException was unhandled by user code
  Message="Cross-thread operation not valid: Control 'UsersListDGV' accessed from a thread other than the thread it was created on."
Вылетает она при выполнении
Код: plaintext
UsersListDGV.DataSource = usr;
в методе
Код: plaintext
FillUsers()
Мы все еще находимся в разных потоках ? Как получить доступ к контролам основного потока ? Кто как решал подобные ситуации именно в рассмотрении AsyncPattern для WCF ? Спасибо.
...
Рейтинг: 0 / 0
WCF, IAsyncResult, DataGridView... заполнение
    #35655694
xeonet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно в другом потоке. Нужно делать Invoke
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF, IAsyncResult, DataGridView... заполнение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]