等待线程结束,然后再传递值

时间:2019-06-25 21:11:16

标签: vb.net

我正在编写一个电报机器人,可以使用电报api和vb.net搜索Wikipedia。如果有人发送消息说“ wiki xyz”(电报api,Onmessage)机器人提供了有关xyz的信息。问题是关于同时发送的消息,如果具有特定聊天ID的用户请求Wiki搜索,而如果第二(甚至第三次)请求相同的消息,则聊天ID和Wiki搜索术语会混淆。在处理第二个(甚至第三个)请求之前,如何等待第一个用户的请求被处理和发送?

这是代码

Private Async Sub OnMessageReceived(sender  As Object, e As MessageEventArgs)
Dim sender As String = e.Message.From.Id.ToString 
Dim msg As String = e.Message.Body.toString
If msg.StartsWith("wiki") Then
  Dim query as String= msg.replace("wiki","")

'''do Wikipedia search with query and sending the reply to sender

            Await sendMessage(sender, formattedWikitxt.ToString)
    End If

问题在于,在接收同时请求的同时,变量“ sender”和“ query”在传递消息之前就已更改,而用户得到的是其他一些答复。如何让此任务在第一个用户收到消息之前等待,然后处理第二个(甚至第3个)请求呢?

0 个答案:

没有答案