동적으로 여러 개의 타이머를 만들어야하지만 실행시 해당 타이머의 이름이 필요합니다.어떻게 동적으로 system.timer의 이름을 설정합니까?
여기 내 코드입니다 : 내가 timer.Site.Name
에서 설정할 수 있다고 생각
timersDict = new Dictionary<string, System.Timers.Timer>();
int i = 0;
foreach (var msg in _messages.CurrentMessages)
{
var timer = new System.Timers.Timer();
timer.Interval = int.Parse(msg.Seconds);
timer.Elapsed += Main_Tick;
timer.Site.Name = i.ToString();
i++;
}
하지만 사이트에 널 예외를 얻을.
만들고있는 타이머의 이름을 어떻게 설정합니까?
편집
나는 그것이 경과 이벤트에 도달 할 때 발사 무엇 타이머 알 필요가 있기 때문에 내가 이것을 만드는 오전. 나는 일단 그것이 발사되면 어떤 메시지를 표시해야하는지 알고 있어야합니다.
타이머를 사용하여 메시지를 전달하고 타이머를 기준으로 메시지를 표시 할 수 있습니까?
void Main_Tick(object sender, EventArgs e)
{
var index = int.Parse(((System.Timers.Timer)sender).Site.Name);
SubmitInput(_messages.CurrentMessages[index].MessageString);
}
나는 그것이 내가 타이머의 모든 동적으로 생성되기 때문에 표시 어떤 메시지를 알 수 있도록이었다 타이머 말해 이름의 사용 거라고 : 여기
내 코드의 나머지 부분입니다.
는 왜 이름이입니다 필요합니까 : 여기
은 예입니다? –사이트는 디자인 타임 속성이므로 런타임에 * null *이됩니다. 타이머를 * int *에 연결하려면''사전을 사용해야합니다. 그리고 for (;;) 루프 안에서'timersDict.Add (timer, i); '를 사용하십시오. –
timer_tick 내부에서 어느 것이 발사되고 있는지 어떻게 알 수 있습니까? – ErocM