Nachdem ich eine ReferenceDataRequest eingerichtet habe, sende ich sie an eine EventQueue weiter
Service refdata = _session.GetService("//blp/refdata");
Request request = refdata.CreateRequest("ReferenceDataRequest");
// append the appropriate symbol and field data to the request
EventQueue eventQueue = new EventQueue();
Guid guid = Guid.NewGuid();
CorrelationID id = new CorrelationID(guid);
_session.SendRequest(request, eventQueue, id);
long _eventWaitTimeout = 60000;
myEvent = eventQueue.NextEvent(_eventWaitTimeout);
Normalerweise kann ich die Nachricht aus der Warteschlange abrufen, aber ich stoße jetzt auf die Situation, dass ich, wenn ich eine Reihe von Anfragen im selben Durchlauf der App mache (normalerweise um den zehnten), eine TIMEOUT
EreignisTyp
if (myEvent.Type == Event.EventType.TIMEOUT)
throw new Exception("Timed Out - need to rethink this strategy");
else
msg = myEvent.GetMessages().First();
Diese werden im selben Thread gemacht, aber ich nehme an, dass ich irgendwo etwas verbrauche und nicht freigebe.
Hat jemand irgendwelche Hinweise oder Ratschläge?
Auf SO gibt es nicht viele Verweise auf die BLP-API, aber wir hoffen, dass wir diese Situation langsam ändern können.