已删除帖子并有代码:
namespace StackOverflowQuestion
{
class Program
{
static void Main (string[] args)
{
var cw = new ConsoleWriter ();
for (int i = 0; i <= 5000000; i++)
{
cw.Write (i);
}
Console.ReadKey ();
}
}
class ConsoleWriter
{
private Stopwatch sw = new Stopwatch ();
public ConsoleWriter ()
{
sw.Start ();
}
public void Write (int pNumber)
{
if (sw.ElapsedMilliseconds >= 50)
{
Console.WriteLine (pNumber);
sw.Restart ();
}
}
}
}
并输出:
305940 651171
1002965
1358665
1715740
2069602
2419054
2772833
3127880
3485054
3844335
4204016
4557912
4913494
所以一切正常。在此示例中,ConsoleWriter 在控制台上显示数字,但它可以显示在控制表面中。如您所见,即使我调用了 5000000 次 Write 方法,它也只会在至少 50 毫秒后更新 UI。很好,但请注意在许多情况下最后一个值 5000000 不会显示。如何解决?我应该使用每 50 毫秒调用一次事件并检查要写入的值是否更改的类(线程)?