For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
21 0 0 3

How to use Dispatcher?

Hello,

I am having difficulty using the ThomsonReuters.Desktop.SDK.DataAccess API to subscribe to realtime data.

I am writting my own RTD server in Excel using Excel-DNA as I want the ability to define my own update intervals for specific RICs, and create on demand update for a large set of RICS using a button in Excel (so request not subscription). I need this as I have a realtime spreadsheet with lots of calculations that cannot handle all RICS updating live. Also because I do not like the Excel Com addins - they seem buggy and interfere with other addins I have creating Excel crashes.

I have previously tried to work out using the Dispatcher and found it very confussing. It seems to be a not well documented class that is mostly used by WPF.

I have got it to work in a dll using a worker thread but that was for time series data, so the 'Frame' could continue working until the series was downloaded then the Frame.Continue was set to false.

However in a RTD situation with subscriptions, I cannot run the subscriptions in the Excel UI thread and then block it while I PushFrame. So if I subscribe and PushFrame in a worker thread that invokes back to the Excel UI thread to update the cell value, how do I add new requests. I don't want to Frame.Continue = false everytime I get an update to see if there is a new request for data before PushFrame again to continue.

As a test I tried using Frame.Continue = False, then Dispatcher.PushFrame(Frame) in the example app, by putting that code in DataReceived but it didn't work - it just aborted the console app!

I don't understand the use of Dispatcher: I know it is due to the fact that underneath it is a COM library and thus needs to use the Windows MessagePump, but I have spend days and days trying to understand how to use this API properly, and the oversimplified example is useless - most users have requirements beyond a console window.

Is there is a better API for Eikon users in .Net for realtime data?

Thanks for you help in advance, Richard


eikoneikon-data-apipythonworkspaceworkspace-data-apirefinitiv-dataplatform-eikonrefinitiv-realtimedispatcherdispatcher-frame
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

Upvotes
Accepted
21 0 0 3

I think I have resolved my issues. I can set Frame.Continue = false from the callee then when in the looped worker thread dequeue requests then set Frame.Continue = true and PushFrame.

I got stuck in DLL hell for most of the afternoon.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.