Вызов событий в S#. Синхронный или асинхронный?
Atom Ответить
25.05.2011


Михаил, добрый день.

Похожий вопрос я уже задавал раньше.
https://stocksharp.ru/fo...essDataError-sinkhronno/

Сейчас осознал, что полной ясности все же у меня нет в этом вопросе.

Задам вопрос на конкретном примере:
Код

void Main()
{
...

Quik.OrdersChanged += Function1;
Quik.OrdersChanged += Function2;

...
}

void Function1(IEnumerable<Order> orders)
{
Console.Write("A");
Thread.Sleep(10000);
}

void Function2(IEnumerable<Order> orders)
{
Console.Write("B");
}


При наступлении события OrdersChanged на экране "A" и "B" выведутся одновременно или с интервалом в 10 секунд?

Теги:


Спасибо:




4 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.05.2011
Ответить


Maxim Перейти
При наступлении события OrdersChanged на экране "A" и "B" выведутся одновременно или с интервалом в 10 секунд?


С интервалом. К Квику (синхронность и асинхронность) не имеет никакого отношения. Это специфика .NET делегатов.
Спасибо:

Maxim

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


Mikhail Sukhov Перейти
Maxim Перейти
При наступлении события OrdersChanged на экране "A" и "B" выведутся одновременно или с интервалом в 10 секунд?


С интервалом. К Квику (синхронность и асинхронность) не имеет никакого отношения. Это специфика .NET делегатов.


Все верно.
Но делегаты можно вызывать синхронно и асинхронно.
Спасибо за ответ.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.05.2011
Ответить


Maxim Перейти
Mikhail Sukhov Перейти
Maxim Перейти
При наступлении события OrdersChanged на экране "A" и "B" выведутся одновременно или с интервалом в 10 секунд?


С интервалом. К Квику (синхронность и асинхронность) не имеет никакого отношения. Это специфика .NET делегатов.


Все верно.
Но делегаты можно вызывать синхронно и асинхронно.
Спасибо за ответ.


В данном случае задержка будет и так и так.
Спасибо:

Maxim

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


Mikhail Sukhov Перейти
Maxim Перейти
Mikhail Sukhov Перейти
Maxim Перейти
При наступлении события OrdersChanged на экране "A" и "B" выведутся одновременно или с интервалом в 10 секунд?


С интервалом. К Квику (синхронность и асинхронность) не имеет никакого отношения. Это специфика .NET делегатов.


Все верно.
Но делегаты можно вызывать синхронно и асинхронно.
Спасибо за ответ.


В данном случае задержка будет и так и так.


Неа.
Если делегаты вызвать одновременно (асинхронно), то "A" и "B" напечатаются тоже одновременно.
Пауза стоит после печати в консоль.
Автор топика
Спасибо:


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

loading
clippy