The API is written as a wrapper around a COM object, so it must be run in a UI thread. I’ve found a way around this, but because it requires frame pushing, it always seems like it’s one exception away from being entirely unresponsive. This wouldn’t be as big of a deal if we could just shut it down and create a new thread, but it seems to recycle the internal component attached to the Eikon instance, and so it would require restarting the Eikon instance. There is no clean way to do this as manually restarting the instance still seems to keep it from being responsive (so it seems like they have a static instance of the COM object internally). Perhaps there is some way to start it in a separate app container and kill the container entirely, but I haven’t found out a way to do this yet.
If the Eikon instance doesn’t go down (and if we never encounter unexpected errors), this may not be a big issue, but if it does go down, it would currently require a restart of the server program to get working again. I’ve read reports of the Eikon instance logging out after a certain period, and if true this would be an issue since I haven’t been able to find out how to auto-login after an actual logout (restarting it without logging out seems to work, but if it logs out, that’s different).
Perhaps it’s possible to use one of the COM API’s directly instead, but it’s unclear whether the same functions are supported (it doesn’t look like it) or if it would even resolve either of the issues at this point.
I suppose your post is about Eikon .NET SDK, right? You may consider more modern Eikon Data APIs as an alternative, which have no dependency on any COM component and consequently on Windows message pump required for COM objects to be able to raise events.
If you prefer to stick with Eikon .NET SDK, instead of pushing frames, you could use the GUI thread to house Eikon .NET SDK objects even in a non GUI application. E.g. in a console application you could use Application.Run method of Windows Forms to kick off Windows Message pump on the thread.
Finally, as a general comment, Eikon is positioned as an end user product. Eikon APIs are purposely not designed for use in enterprise applications or in server side fully automated unattended processes. According to the terms of standard Refinitiv contract any data retrieved from Eikon is for the individual user's use only. If you're looking to use Refinitiv data in an enterprise application or to facilitate fully automated unattended processes, Eikon is not the right product for you. You should instead consider one of Refinitiv enterprise products that are designed to be used in the manner you require and come with the license to utilize Refinitiv data the way you need.