在显示任何结果之前等待完成。 可能是因为我试图遵循的例子是改变现场价值,而不是改变现场收藏。
和
ObservableCollection<FileAnalysisResult> fileAnalysisResults = new ObservableCollection<FileAnalysisResult>();
我似乎无法申请,因为.DumpLive()
不适用于ObservableCollection
。
答案 0 :(得分:2)
简短回答:使用LINQPad的DumpContainer
:
var dc = new DumpContainer().Dump();
for (int i = 0; i < 100; i++)
{
dc.Content = i;
Thread.Sleep(100);
}
长答案:DumpContainer
写入LINQPad的标准HTML结果窗口,因此您可以在主要线程被阻止时看到值更改,而调用DumpLive
时IObservable使用WPF控件来呈现更新,因此主线程必须保持解除阻塞状态才能在发生更新时查看更新。
还可以转储WPF或Windows窗体控件并将其更新到位:
var txt = new TextBox().Dump();
for (int i = 0; i < 100; i++)
{
txt.Text = i.ToString();
await Task.Delay(100);
}
与DumpLive
一样,您必须小心不要阻止主线程。如果您将await Task.Delay
替换为Thread.Sleep
,则会阻止UI线程,直到结束时才会显示任何内容。