Обновил сборки до S# 3.1
Atom
15.04.2011


В основном с decimal заменял места. Еще поправил ссылки у проектного файла (они указывали в bin\Debug)

Теги:


Спасибо:


< 1 2 3  >
aspirant

Фотография
Дата: 22.04.2011
Ответить


Mikhail Sukhov Перейти
В client_rounter.ini что написано? Какой порт?


Код
; TCP-порт, на котором слушает роутер
;port=4001
port=3001


Правил сам

Спасибо:

Mikhail Sukhov

Фотография
Дата: 22.04.2011
Ответить


aspirant Перейти
Mikhail Sukhov Перейти
В client_rounter.ini что написано? Какой порт?


Код
; TCP-порт, на котором слушает роутер
;port=4001
port=3001


Правил сам



Тоесть, значение по умолчанию 4001? А в чем смысл тогда было исправить на 3001?
Спасибо:

aspirant

Фотография
Дата: 22.04.2011
Ответить


Mikhail Sukhov Перейти
Тоесть, значение по умолчанию 4001? А в чем смысл тогда было исправить на 3001?


Чтобы работало[smile]. У тебя там дальше вот так?
Код
[ROUTEINFO]
; настройка соединений роутера с вышестоящими серверами.
; формат строки: {default|direct} = {ip-адрес | имя FQDN}:{номер порта}
; Должно быть одно дефолтное соединение и может быть от нуля до нескольких директных.
; Об адресах, на котрорые можно и нужно устанавливать дефолтные и директные соединения, проконсультируйтесь
; со службой тех. поддержки!!! В дистрибутиве указана рекомендуемая настройка для соединения с пулом серверов РТС.
;default=p2forts.rts.ru:4001
default=beta-forts.rts.ru:3001


Тоже правил сам.

Спасибо:

Mikhail Sukhov

Фотография
Дата: 22.04.2011
Ответить


aspirant Перейти
Mikhail Sukhov Перейти
Тоесть, значение по умолчанию 4001? А в чем смысл тогда было исправить на 3001?


Чтобы работало[smile]. У тебя там дальше вот так?


У меня работает и с 4001 и с 3001. Может оставим тот, который по умолчанию после установки идет?
Спасибо:

Mikhail Sukhov

Фотография
Дата: 01.05.2011
Ответить


aspirant Перейти
Mikhail Sukhov Перейти
Зачем нужна такая конструкция?

Код
ThreadPool.QueueUserWorkItem(s =>
{
    //WaitHandle.WaitAll(new[] { _futuresQuotesOnline, _futuresSessionOnline, _optionQuotesOnline, _optionSessionOnline });
    WaitHandle.WaitAll(new[] { _futuresQuotesOnline, _optionQuotesOnline });




Ты имеешь в виду, зачем запускать этот кусок в отдельном потоке?


Не увидел твоего ответа... Зачем вообще нужны WaintHandle-ы? Что блокируется и для чего?
Спасибо:

Mikhail Sukhov

Фотография
Дата: 06.05.2011
Ответить


Mikhail Sukhov Перейти
aspirant Перейти
Mikhail Sukhov Перейти
Зачем нужна такая конструкция?

Код
ThreadPool.QueueUserWorkItem(s =>
{
    //WaitHandle.WaitAll(new[] { _futuresQuotesOnline, _futuresSessionOnline, _optionQuotesOnline, _optionSessionOnline });
    WaitHandle.WaitAll(new[] { _futuresQuotesOnline, _optionQuotesOnline });




Ты имеешь в виду, зачем запускать этот кусок в отдельном потоке?


Не увидел твоего ответа... Зачем вообще нужны WaintHandle-ы? Что блокируется и для чего?


Ок, раз никто не знает, можно удалять?[laugh]
Спасибо:

aspirant

Фотография
Дата: 06.05.2011
Ответить


Mikhail Sukhov Перейти
Mikhail Sukhov Перейти
aspirant Перейти
Mikhail Sukhov Перейти
Зачем нужна такая конструкция?

Код
ThreadPool.QueueUserWorkItem(s =>
{
    //WaitHandle.WaitAll(new[] { _futuresQuotesOnline, _futuresSessionOnline, _optionQuotesOnline, _optionSessionOnline });
    WaitHandle.WaitAll(new[] { _futuresQuotesOnline, _optionQuotesOnline });




Ты имеешь в виду, зачем запускать этот кусок в отдельном потоке?


Не увидел твоего ответа... Зачем вообще нужны WaintHandle-ы? Что блокируется и для чего?


Ок, раз никто не знает, можно удалять?[laugh]


Извини, выпал из процесса на несколько дней и пропустил твое предыдущее сообщение. Вот здесь вы со skuvv'ом писали, что сначала нужно скачать инструменты, а уже потом запускать остальные системные потоки. Именно из-за этого мы ждем, пока не скачается вся информация по инструментам, после чего потоки инструментов перейдут в состояние TDataStreamState.DS_STATE_ONLINE (см. методы OnFuturesQuotesStreamStateChanged / OnOptionQuotesStreamStateChanged), после чего сигнализуруем, что можно запускать остальные потоки.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 07.05.2011
Ответить


aspirant Перейти

Извини, выпал из процесса на несколько дней и пропустил твое предыдущее сообщение. Вот здесь вы со skuvv'ом писали, что сначала нужно скачать инструменты, а уже потом запускать остальные системные потоки. Именно из-за этого мы ждем, пока не скачается вся информация по инструментам, после чего потоки инструментов перейдут в состояние TDataStreamState.DS_STATE_ONLINE (см. методы OnFuturesQuotesStreamStateChanged / OnOptionQuotesStreamStateChanged), после чего сигнализуруем, что можно запускать остальные потоки.


Понял. Тогда я это удаляю. Оно не нужно, так как теперь используется метод BaseTrader.ProcessSecurityAction.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 07.05.2011
Ответить


Mikhail Sukhov Перейти
aspirant Перейти

Извини, выпал из процесса на несколько дней и пропустил твое предыдущее сообщение. Вот здесь вы со skuvv'ом писали, что сначала нужно скачать инструменты, а уже потом запускать остальные системные потоки. Именно из-за этого мы ждем, пока не скачается вся информация по инструментам, после чего потоки инструментов перейдут в состояние TDataStreamState.DS_STATE_ONLINE (см. методы OnFuturesQuotesStreamStateChanged / OnOptionQuotesStreamStateChanged), после чего сигнализуруем, что можно запускать остальные потоки.


Понял. Тогда я это удаляю. Оно не нужно, так как теперь используется метод BaseTrader.ProcessSecurityAction.


За одно вынес все потоки в класс PlazaListenerRegistry. Во время переноса увидел, что потоки в классе PlazaTrader дублируют те, что есть в PlazaListenerRegistry. Первые убрал в пользу вторых. Если юзер коду нужно будет получать данные из основных потоков, пусть подписывается на те же самые события класса PlazaListener, что и PlazaTrader.
Спасибо:

aspirant

Фотография
Дата: 07.05.2011
Ответить


Mikhail Sukhov Перейти
Понял. Тогда я это удаляю. Оно не нужно, так как теперь используется метод BaseTrader.ProcessSecurityAction.

OK, понятно.

Mikhail Sukhov Перейти
Если юзер коду нужно будет получать данные из основных потоков, пусть подписывается на те же самые события класса PlazaListener, что и PlazaTrader.


Я думал о таком объединении потоков. Решил сделать раздельно, потому, если пользователь запустит в своем обработчике событий некое длительное действие, то застопорится получение системной информации, до тех пор пока не завершится клиентский обработчик событий. А в нашем случае речь идет о миллисекундах. Или я усложняю?
Спасибо:
< 1 2 3  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy