2009-08-23 8 views
0

J'ai un service Web avec une seule méthode Web qui renvoie une valeur booléenne et une fonctionWeb problème de valeur de retour de service dans VB.net

Lorsqu'une application client consomme ce service web, je veux d'abord revenir une valeur vrai, puis continuez avec le processus restant.

Je cherchais sur Google et je n'ai rien trouvé que je puisse comprendre. Sil te plait aide moi. Dans l'un des messages, j'ai vu le filetage comme une option. J'ai essayé ça aussi.

est sous le code pour le même que je commentais la partie de filetage s'il vous plaît aider

<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 
+0

vous devrez "continuer avec le processus principal" dans le thread et retourner vrai dans votre fonction webapp principale. vous devrez vous assurer que vous ne démarrez pas des milliers de threads en interrogeant à plusieurs reprises la webapp si ... – mihi

Répondre

0

Vous devez faire quelque chose comme ceci:

<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 

à proprement parler, la méthode Web ne retourner avant que le traitement supplémentaire commence, mais il retourne immédiatement après le lancement du nouveau thread, de sorte que le décalage horaire est très faible. Une fois que vous revenez d'une méthode, son exécution est à peu près terminée, donc tout ce que vous voulez démarrer doit être démarré avant l'instruction Return.

Questions connexes