Благодаря ответу из моего предыдущего вопроса
вот тут я научился использовать (назначать и вызывать) собственные переменные. Сейчас же столкнулся с проблемой их вызова и использования в основном классе (Program).
Софт (пока что консолька) имеет два класса. Один из них: class MyCallbacks : RCallbacks - этот класс от API.
Второй - основной, в котором используется уже метод Main.
В виде результата работы программы я хочу получать в консоли сообщения следующего вида:
Exchange - SymbolName - Ask Price - Bid Price
ESM0 - CME - 2990.00 - 2990.25
На данный момент я могу получать такие "принты", если укажу свои переменные в методах, которые указаны в классе MyCallbacks:RCallbacks. Но, вызвать эти переменные я могу всего один раз.
Сразу уточню - в данный момент эти методы вызываются с помощью следующего кода:
oEngine.subscribe(sExchange, sSymbol, SubscriptionFlags.Best, null);
Сам метод subscribe в классе REngine (oEngine):
public sealed class REngine
{
public void subscribe(string sExchange, string sSymbol, SubscriptionFlags eFlags, object oContext);
}
Еще одним из важных уточнений, является то, что это идет постоянный поток рыночных данных, и вызываются методы с помощью SubscriptionFlags.Best, который при изменении одной из котировок - вызывает один из методов (смотря какой изменился)
class MyCallbacks : RCallbacks
{
public string symbolName;
public string exchangeName;
public double askPrice;
public double bidPrice;
public override void BestAskQuote(AskInfo oInfo)
{
symbolName = oInfo.Symbol;
exchangeName = oInfo.Exchange;
askPrice = oInfo.Price;
}
public override void BestBidQuote(AskInfo oInfo)
{
symbolName = oInfo.Symbol;
exchangeName = oInfo.Exchange;
bidPrice = oInfo.Price;
}
}
Что я хочу сделать, так это назначить собственные переменные, но уже в классе Programm, которые будут обновляться с такой же частотой, как и сама "подписка" subscribe. Я обозначил собственные переменные symbolName, exchangeName, askPrice, bidPrice. Их я назначаю при каждом обращении этого subscribe, но вот как их использовать в дальнейшем - я понятия не имею. Поддержка от API к сожалению молчит.
В дальнейшем я хочу на основе такого же кода создать уже не консольное приложение, которое будет обновлять данные переменные в ячейках таблицы. Сейчас я могу вызвать эти переменные через oCallback.askPrice например, но вот сделать постоянное (динамическое) обновление с такой же частотой как oEngine.subscribe у меня не получается.
Здесь критически важно получать эти обновления мгновенно (по аналогии с используемым методом), но с возможность дальнейшего использования собственных переменных, которые будут использоваться в различных окнах приложения и там же обновляться с такой же частотой. Буду очень благодарен за решение!
p.s.: Само обновление этих переменных я могу оставить без проблем через subscribe, но вот выводить их постоянно нужно другим методом, потому как прописать всю будущую логику в методы BestAskQuote, BestBidQuote не получится. Именно поэтому мне нужно получить собственные переменные, с которыми смогу работать в любых окнах проекта.
p.p.s.: Также хотелось бы узнать, возможно есть программисты C#, которые могут проконсультировать голосом по вопросам программирования, и, скажем так, стать наставниками? Буду благодарен.
Спасибо!
С уважением, Евгений.