У меня есть следующий код, который я использую для имитации живого потока данных, который одновременно отправляет сообщение, на которое должен ответить каждый объект типа «Символ» в коллекции внутри «Portfolio.Symbols» (другим методом, выполняющим некоторую работу над ним).
Для того, чтобы это было одновременно, я пытаюсь зарегистрировать анонимные обработчики событий следующим образом:
static public void RegisterEvents()
{
foreach (Symbol symbol in Portfolio.Symbols)
{
GenerateQuoteRequest += () => { SomeMethod(symbol); };
}
}
static public void Run()
{
OnGenerateQuoteRequest();
Thread.Sleep(100);
}
public delegate void OnGenerateQuoteRequestEventHandler();
public static event OnGenerateQuoteRequestEventHandler GenerateQuoteRequest
= delegate {};
...
Затем я пытаюсь вызвать событие, надеясь, что я будуполучить количество запускаемых экземпляров SomeMethod.К сожалению, только последний добавленный «символ» называется.
Что мне здесь не хватает?