длительный процесс vb.net - PullRequest
0 голосов
/ 03 июня 2011

У меня есть приложение для управления запросами на обслуживание, и пользователи хотят открыть несколько сведений о билетах на вкладке во фрейме MDI. Поскольку это приложение должно обмениваться данными через службу Web XML с другой компанией, это занимает около 15 ~ 20 секунд. Пользователи больше всего жалуются на то, что ему нужно подождать, пока процесс сохранения не будет завершен. Курсор работает, пока данные сохраняются, а другое невозможно.

Как наиболее эффективно разрешить пользователю открывать другое окно и делать что-то еще или сохранять данные во время сохранения данных из других окон?

Кстати, это приложение VB.Net / Windows.

Ответы [ 3 ]

1 голос
/ 03 июня 2011

Вы можете использовать BackgroundWorker или новый поток.Лично я бы попробовал использовать встроенные асинхронные методы, такие как BeginInvoke

http://www.developer.com/net/vb/article.php/1443981/Asynchronous-Web-Services-for-Visual-Basic-NET.htm

Имейте в виду, что асинхронные операции очень быстро усложняются, и они очень важны.

1 голос
/ 03 июня 2011
0 голосов
/ 03 июня 2011

Я написал веб-сервис, который является частью решения, которое должно завершиться и запустить метод, который требует много времени.После некоторых экспериментов я решил, что проще всего запустить долгосрочную задачу в новом потоке веб-службы и вернуть пользовательский объект вызывающему приложению (которое затем используется позже).

<WebMethod()> Public Function StartChecks() As ResponseItem

    Dim t As New Thread(New ThreadStart(AddressOf Me.StartWork))
    t.Start()

    Return New ResponseItem(CheckGUID.ToString)

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...