我需要在控制台中同时写两个东西。我必须显示递归函数从递归返回时的部分结果(我将在这里等待一段时间),而在屏幕的其他部分,我必须写入已满的堆栈的百分比。同时在控制台的两个位置写入
这必须在同一时间完成。 如何在C#中执行此操作?
编辑:此外,必须更新进度。
我需要在控制台中同时写两个东西。我必须显示递归函数从递归返回时的部分结果(我将在这里等待一段时间),而在屏幕的其他部分,我必须写入已满的堆栈的百分比。同时在控制台的两个位置写入
这必须在同一时间完成。 如何在C#中执行此操作?
编辑:此外,必须更新进度。
您可以使用Console
类中的各种属性(例如CursorLeft
和CursorTop
)来设置书写的位置。您不能完全同时写入两个职位 - 只需写入一个位置,然后立即写入另一个位置。这应该足够接近。
两个选项,以避免竞争条件:
执行所有控制台在一个单独的线程,例如写使用生产者/消费者队列的写入方式
使用锁定 - 只需要一个方法在锁中完成“设置位置和写入”操作。
如果您的主线程正在等待,忙于递归函数,唯一的选择是使用另一个线程来显示堆栈的百分比。
谢谢。我会尝试看看它是怎么回事 – robertpas 2012-08-01 06:25:23
@robertpas:请参阅我的编辑更清晰:) – 2012-08-01 06:26:26
它的工作。谢谢您的帮助 – robertpas 2012-08-01 07:29:38