我正在访问提供.NET API以检索市场数据的数据服务。基本上,请求看起来像这样(simpleiefied)......
For Each myID in myListofIDs
myRequest = myDataService.Realtime.GetID(myID, AddressOf ReturnDataFunction, AddressOf ReturnErrorFunction)
Next
我在同一个线程中发送多个请求,然后由API异步执行请求。最后,数据从回调函数中收到,我可以存储它。
但是,这是我的问题:没有一个回调函数返回原始ID但只返回数据。如果我收到错误并且" ReturnErrorFunction"我被称为,我从错误信息中获得的唯一信息是,#34;无法找到ID" - 但它不会告诉我哪个ID导致了错误。
是否有任何信息要在我的代码中为回调定义添加一个额外的参数,或者有没有办法跟踪启动调用的原始函数?
如果你能告诉我这里是否有任何选择可以避免这个问题,我将很高兴...谢谢。
答案 0 :(得分:0)
我认为你可以这样做:
myRequest = myDataService.Realtime.GetID(myID,
AddressOf ReturnDataFunction,
Sub(myResult As String)
Call ReturnErrorFunction(myResult, myID)
End Sub)
如果回调被存储并且在循环结束后可能稍后调用,则存在一些潜在的技术问题,但除非它与您实际相关,否则我不会进入这些问题。