Ошибка возврата значения веб-службы в VB.net - PullRequest
0 голосов
/ 23 августа 2009

У меня есть веб-служба с одним веб-методом, который возвращает логическое значение, и функцией

Когда клиентское приложение использует этот веб-сервис, я сначала хочу вернуть значение true, а затем продолжить оставшийся процесс.

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

Ниже приведен код того же, что я прокомментировал потоковую часть, пожалуйста, помогите

    <WebMethod()> _
    Public Function HelloWorld(ByVal str As String) As Boolean
        Dim status As Boolean = False
        If str <> "" Then
           'Dim t As New Thread(AddressOf ReturnWSStatus)
            't.Start()   
            Me.DoItNow()
        End If
        Return status
    End Function

  Public Shared Function ReturnWSStatus() As Boolean
        Return True
        'Thread.Sleep(0)
    End Function

1 Ответ

0 голосов
/ 29 августа 2009

Вам нужно будет сделать что-то вроде этого:

<WebMethod()> Public Function HelloWorld(ByVal str As String) As Boolean
    Dim status As Boolean = False

    If str <> "" Then
        Dim t As New Thread(AddressOf DoItNow)
        t.Start()
        return true
    End If
End Function

Строго говоря, веб-метод не возвращается до начала дополнительной обработки, но возвращается сразу после запуска нового потока, поэтому разница во времени очень мала. Как только вы возвращаетесь из метода, его выполнение в значительной степени завершено, поэтому все, что вы хотите, чтобы он запускался, нужно запускать до оператора Return.

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