При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан. Затем: Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз. |
Асинхронное программирование
Подключение к web-сервису
Web-сервисы представляют собой отдельные компоненты, к которым можно получить доступ через Интернет и задействовать их в своем web-приложении. Их использование напоминает подключение компонент .NET или СOM в Windows-приложениях и зачастую существенно облегчает разработку. Более подробную информацию о web-сервисах вы сможете найти в литературе, посвященной технологии ASP.NET.
Подключение к web-сервисам — это, как правило, длительный процесс, занимающий несколько секунд. Рассмотрим два варианта подключения к сервису: один будет подключаться к web-службе синхронно, другой — асинхронно.
Создадим вначале web-сервис. В Visual Studio .NET создаем новый проект, в окне шаблонов выбираем ASP.NET Web Service и называем его HelloWorldService (рис. 7.6).
Переключаемся в режим кода и убираем комментарии с существующего метода HelloWorld (рис. 7.7).
Добавляем в тело метода следующий код:
[WebMethod] public string HelloWorld() { // Имитация длительной работы метода System.Threading.Thread.Sleep(2000); return "Hello World"; }
Компилируем проект и закрываем его. Теперь займемся Windows-приложением, которое будет вызывать Web-Service. Создайте новый проект и назовите его WebService. В окне Solution Explorer щелкаем правой кнопкой на папке References и в появившемся меню выбираем пункт Add Web Reference (рис. 7.8).
увеличить изображение
Рис. 7.8. Приложение WebService в режиме дизайна. Добавление ссылки на web-сервис