我需要在控制台中同时写两件事。我必须显示递归函数从递归返回时的部分结果(我将在此处等待时间),并且在屏幕的其他部分我必须写出堆栈已满的百分比。
这必须同时进行。我如何在 C# 中做到这一点?
编辑:还必须更新进度。
我需要在控制台中同时写两件事。我必须显示递归函数从递归返回时的部分结果(我将在此处等待时间),并且在屏幕的其他部分我必须写出堆栈已满的百分比。
这必须同时进行。我如何在 C# 中做到这一点?
编辑:还必须更新进度。
您可以使用类中的各种属性设置书写位置Console
,例如CursorLeft
和CursorTop
。您不能同时写入两个位置 - 只需写入一个位置,然后立即写入另一个位置。那应该足够接近。
避免竞争条件的两个选项:
在单个线程中执行所有控制台写入,例如使用写入的生产者/消费者队列
使用锁定 - 只需有一种方法可以在锁定中执行完整的“设置位置和写入”操作。
如果你的主线程正在等待,忙于你的递归函数,唯一的选择是使用另一个线程来显示堆栈的百分比。