이 답변은 Ankur의의 라인을 따라입니다 - 타이머 기반의 관찰 시퀀스를 생성하는 반응성 확장을 사용 : 물론
public ObservableCollection<Message> Messages { get; set; }
void QueueMessages(IEnumerable<Message> messages)
{
int intervalSeconds = 5;
// generate the observable source
var enumerator = messages.GetEnumerator();
var source = Observable.Generate(
enumerator, // initial value
i => enumerator.MoveNext(), // condition
i => i, // iterate
i => enumerator.Current, // selector
i => TimeSpan.FromSeconds(intervalSeconds)) // interval selector
.ObserveOnDispatcher();
// subscribe to the source
source.Subscribe(
// display messages as they arrive
message => Messages.Add(message),
// add a "complete" message when done
() => Messages.Add(new Message("complete!"))
);
}
을, 효과는 DispatcherTimer과 동일 ,하지만 여기의 구문은 각 타이머 틱에서 한 번 열거되기에 더 깨끗합니다.
당신은 말합니다 : ... 그리고 화면이로드 될 때 ... 어떤 화면이 표시됩니까? ASP.NET 웹 화면, WinForms, WPF, Silverlight? UI가 대답에 차이를 만듭니다. 예를 들어 WPF에서는 Expression Blend를 사용하여 스토리 보드를 설정할 수 있습니다. 하지만 ASP.NET이나 WinForms에서는 사용하지 않을 것입니다. – Rhyous
당신의 목표는 무엇입니까? WPF? Windows Forms? 편물? 실버 라이트? – Zruty
WPF 화면에 대해 살펴 보겠습니다. –