Здравствуйте, Михаил!
Подписался на событие Trader.NewSecurities += NewSecurities и ожидал, что придут все символы сразу. Но они приходят по одному. Это ладно.
Можно ли как-нибудь узнать, когда пришли все доступные? По аналогии как это можно сделать через SmartCOM интерфейс напрямую:
SmartServer.AddSymbol += new _IStClient_AddSymbolEventHandler(SmartServer_AddSymbol);
private void SmartServer_AddSymbol(int row, int nrows, string symbol, ...)
{
if (row == nrows - 1)
{
// ВСЕ СИМВОЛЫ ПОЛУЧЕНЫ!
...
}
}
Kommentare (5)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Раньше приходили скопом, но приходилось долго ждать. Поэтому переделал на построчный вывод. А зачем это нужно?
Иногда медленно приходит, иногда быстро. Надо получить все символы. Хочется знать, ждать дальше или нет. Пока сделал проверку каждые 10 секунд, если количество бумаг не изменилось, то считаю, что все получено. Работает, но выглядит как заплатка. Не критично, конечно.
А зачем вообще ждать все инструменты?
список бумаг вводится со стороны. ждать все или несколько - не важно. все равно в какой-то момент надо сказать, что какие-то бумаги получены, а какие-то нет, и ждать дальше не имеет смысла.
Вот поэтому я просто жду те инструменты, которые мне нужны. Дело на самом деле не просто в получении подтверждения о всех пришедших инструментах, а в асинхронном подходе. S# построен на асинхронной модели (специфика биржевого ПО), и нужно ждать только то, что необходимо. Тоже самое и с заявками, и стаканами, и сделками. И инструменты тут не исключение.