라이브 데이터 피드를 시뮬레이트하는 데 사용하는 다음 코드가 있습니다. 은 "Portfolio.Symbols"컬렉션의 각 개체 "Symbol" (다른 방법으로 그것에 대한 작업을해야 함)에 응답해야합니다. ,복수의 익명 이벤트 처리기 - 마지막 하나만 호출됩니다.
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의 번호를 얻을 것이다 희망 : 동시에, 나는 익명의 이벤트 핸들러를 다음과 같은 방법을 등록하려고 진실하기 위해서는
"인스턴스가 실행됩니다. 불행히도 추가 된 마지막 "심볼"만 호출됩니다.
무엇이 여기에 있습니까?
에만 호출됩니다 추가 된 마지막 "기호"- 그래,하지만이 많은라고합니다. –
http://stackoverflow.com/questions/3190578/from-eric-lipperts-blog-dont-close-over-the-loop-variable (상단 및 의견에있는 다양한 링크)도 참조하십시오. 이것은 매우 인기있는 질문입니다. – Brian