为什么这样异步调用没有效果?
实际上我是要循环一个treeview,给每个节点调用这个webservices方法
所以用异步调用我认为比较合适.
代码如下:
Dim sonNote As TreeNode
For Each sonNote In note.Nodes
If sonNote.Checked = True Then
j += 1
Dim nowCityId As Integer = RemoveString(sonNote.Text)
' CityId = nowCityId
'创建进程
'ReDim threadArray(threadArray.Length + 1)
'Dim ThreadDelivert As New ThreadDelivert
'Dim Thread1 As New Thread(AddressOf ThreadDelivert.insertMoreDelivery)
'Thread1.Name = "Thread" & j
'ThreadDelivert.cityId = nowCityId
'ThreadDelivert.deliveryId = deliveryId
'ThreadDelivert.shoppingWebId = shoppingWebId
'ThreadDelivert.remark = remark
' threadArray(threadArray.Length) = Thread1
'Thread1.Start()
'Thread1.Join()
Dim dataService As New GoByGo.Com.TheGoByGoWebService.TravelService
Dim ar As IAsyncResult = dataService.BeginInsertShoppingWebDeliveryByShopIdAndCityId(UserSettings.Instance.Username, UserSettings.Instance.Password, shoppingWebId, nowCityId, deliveryId, remark, Nothing, Nothing)
ar.AsyncWaitHandle.WaitOne()
Dim getInt As Integer
getInt = dataService.EndInsertShoppingWebDeliveryByShopIdAndCityId(ar)
If getInt > 0 Then
MessageBox.Show("添加成功部分!")
Else
MessageBox.Show("添加失败部分!")
End If
ar.AsyncWaitHandle.Close()
End If
Next
结果却是,循环的第一个提示成功MessageBox.Show("添加成功部分!"),其他的全部是失败MessageBox.Show("添加失败部分!")
,请问为什么?