C# 更新循环中文本的某些值
我只想在控制台应用程序中看到数字更新,以下是我如何尝试实现这一点:C# 更新循环中文本的某些值,c#,console-application,C#,Console Application,我只想在控制台应用程序中看到数字更新,以下是我如何尝试实现这一点: int successEntryCount = 0; int failedEntryCount = 0; Console.WriteLine("App Started:"); foreach (var entity in entities) { var res = bll.AsiErtelemeIptalPaketiGonder(entity); if (res.State == Framework.Enti
int successEntryCount = 0;
int failedEntryCount = 0;
Console.WriteLine("App Started:");
foreach (var entity in entities)
{
var res = bll.AsiErtelemeIptalPaketiGonder(entity);
if (res.State == Framework.Entities.MessageResultState.SUCCESS)
successEntryCount++;
else
failedEntryCount++;
Console.WriteLine("success :{0}", successEntryCount);
Console.WriteLine("fail:{0}", failedEntryCount);
}
当然,它复制了行和控制台。清除不是一个好选项,因为文本闪烁太快。我只想看到这些数字更新。而不是
Console.WriteLine("success :{0}", successEntryCount);
Console.WriteLine("fail:{0}", failedEntryCount);
你可以试试类似的东西
Console.Write("success :{0} fail:{1} \r", successEntryCount, failedEntryCount);
而不是
Console.WriteLine("success :{0}", successEntryCount);
Console.WriteLine("fail:{0}", failedEntryCount);
你可以试试类似的东西
Console.Write("success :{0} fail:{1} \r", successEntryCount, failedEntryCount);
使用方法。让我们来看看这个简单的例子:
int successEntryCount = 0,
failedEntryCount = 10,
l = Console.CursorLeft,
t = Console.CursorTop;
for (int i = 0; i < 2000; i++)
{
Thread.Sleep(100);
Console.SetCursorPosition(l, t);
Console.WriteLine("success :{0}", successEntryCount++);
Console.WriteLine("fail:{0}", failedEntryCount++);
//or
//Console.Write("success :{0} fail:{1}", successEntryCount++ , failedEntryCount++);
}
\r表示回车符13,表示光标返回到行首
或
\b是退格字符8
参考资料:使用方法。让我们来看看这个简单的例子:
int successEntryCount = 0,
failedEntryCount = 10,
l = Console.CursorLeft,
t = Console.CursorTop;
for (int i = 0; i < 2000; i++)
{
Thread.Sleep(100);
Console.SetCursorPosition(l, t);
Console.WriteLine("success :{0}", successEntryCount++);
Console.WriteLine("fail:{0}", failedEntryCount++);
//or
//Console.Write("success :{0} fail:{1}", successEntryCount++ , failedEntryCount++);
}
\r表示回车符13,表示光标返回到行首
或
\b是退格字符8
参考资料:您可以使用Console.SetCursorPosition设置光标位置。另外,不要丢失已记录的现有控制台日志,如-App start:在您的情况下,您可以根据检索到的左侧和顶部位置设置光标位置。可以使用Console.CursorLeft和Console.CursorTop属性检索当前的左侧和右侧位置
int successEntryCount = 0;
int failedEntryCount = 0;
Console.WriteLine("App Started:");
int left = Console.CursorLeft;
int right = Console.CursorTop;
foreach (var entity in entities)
{
var res = bll.AsiErtelemeIptalPaketiGonder(entity);
if (res.State == Framework.Entities.MessageResultState.SUCCESS)
successEntryCount++;
else
failedEntryCount++;
Console.SetCursorPosition(left, right);
Console.WriteLine("success :{0}", successEntryCount);
Console.WriteLine("fail:{0}", failedEntryCount);
}
可以使用Console.SetCursorPosition设置光标位置。另外,不要丢失已记录的现有控制台日志,如-App start:在您的情况下,您可以根据检索到的左侧和顶部位置设置光标位置。可以使用Console.CursorLeft和Console.CursorTop属性检索当前的左侧和右侧位置
int successEntryCount = 0;
int failedEntryCount = 0;
Console.WriteLine("App Started:");
int left = Console.CursorLeft;
int right = Console.CursorTop;
foreach (var entity in entities)
{
var res = bll.AsiErtelemeIptalPaketiGonder(entity);
if (res.State == Framework.Entities.MessageResultState.SUCCESS)
successEntryCount++;
else
failedEntryCount++;
Console.SetCursorPosition(left, right);
Console.WriteLine("success :{0}", successEntryCount);
Console.WriteLine("fail:{0}", failedEntryCount);
}
如果您真的想在控制台应用程序中创建如此复杂的UI,请使用Miguel de Icaza。如果您真的想在控制台应用程序中创建如此复杂的UI,请使用Miguel de Icaza。