2012-08-01 51 views
0

我需要在控制檯中同時寫兩個東西。我必須顯示遞歸函數從遞歸返回時的部分結果(我將在這裏等待一段時間),而在屏幕的其他部分,我必須寫入已滿的堆棧的百分比。同時在控制檯的兩個位置寫入

這必須在同一時間完成。 如何在C#中執行此操作?

編輯:此外,必須更新進度。

回答

3

您可以使用Console類中的各種屬性(例如CursorLeftCursorTop)來設置書寫的位置。您不能完全同時寫入兩個職位 - 只需寫入一個位置,然後立即寫入另一個位置。這應該足夠接近。

兩個選項,以避免競爭條件:

  • 執行所有控制檯在一個單獨的線程,例如寫使用生產者/消費者隊列的寫入方式

  • 使用鎖定 - 只需要一個方法在鎖中完成「設置位置和寫入」操作。

+0

謝謝。我會嘗試看看它是怎麼回事 – robertpas 2012-08-01 06:25:23

+0

@robertpas:請參閱我的編輯更清晰:) – 2012-08-01 06:26:26

+0

它的工作。謝謝您的幫助 – robertpas 2012-08-01 07:29:38

0

如果您的主線程正在等待,忙於遞歸函數,唯一的選擇是使用另一個線程來顯示堆棧的百分比。