【问题标题】:Write at two locations in the console at the same time同时在控制台的两个位置写入
【发布时间】:2012-08-01 06:18:46
【问题描述】:

我需要在控制台中同时写两件事。我必须显示递归函数从递归返回时的部分结果(我将在此处等待时间),并且在屏幕的其他部分我必须写下堆栈已满的百分比。

这必须同时进行。 如何在 C# 中执行此操作?

编辑:也必须更新进度。

【问题讨论】:

    标签: c# multithreading location


    【解决方案1】:

    您可以使用Console 类中的各种属性设置写入位置,例如CursorLeftCursorTop。您不能同时写入两个位置 - 只需写入一个位置,然后立即写入另一个位置。那应该足够接近。

    避免竞争条件的两个选项:

    • 在单个线程中执行所有控制台写入,例如使用生产者/消费者写入队列

    • 使用锁定 - 只需有一个方法在锁定中执行完整的“设置位置和写入”操作。

    【讨论】:

    • 谢谢。我会试试看效果如何
    【解决方案2】:

    如果你的主线程正在等待,忙于你的递归函数,唯一的选择是使用另一个线程来显示堆栈的百分比。

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多