To my human eye, the "ReadBinaryFile" and "GetCurrentValues" methods seem correct.
I also confirm that "Start" and "Run" of the "ExternalFeedProducer" class should be removed, as now only the main thread in "ExternalFeedSimulator" is needed.

Hence, if you observe that the Data Adapter does not call onEvent as expected, you should try to setup a code debugger and trace it step by step.
Alternatively, if you want to log the data flow sent by your "ExternalFeedSimulator" class, you have to add custom log lines, for instance in the "onEvent" implementation in "StockList.cs".

Note that, in this method, only the events pertaining to stocks that are currently subscribed to are forwarded to Lightstreamer.
You can have the Remote Server log the update events really sent to Lightstreamer by setting as DEBUG the "Lightstreamer.DotNet.Server.RequestReply" logging category. The configuration of the Remote Server log, in the included deployment example, is in the "DotNetServer.exe.config" file beside the "DotNetServer.exe" executable; the configured log file is "DotNetServer.log".

The Server logging configuration file, "lightstreamer_log_conf.xml", can remain unchanged, for the moment.

Dario