我正在编写一个电报机器人,可以使用电报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个)请求呢?