Я исправил это, добавив ChangeDetectionStrategy из углового ядра.
import { Component, ChangeDetectionStrategy } from '@angular/core';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'page1',
templateUrl: 'page1.html',
})
Можно использовать SetConsoleCursorPosition. Необходимо будет назвать GetStdHandle для получения дескриптора к буферу вывода.
Если Вы распечатаете использование \r и не будете использовать функцию, которая генерирует новую строку или добавит \n в конец, то курсор вернется к началу строки и просто распечатает по следующей вещи, которую Вы поднимаете. При генерации полной строки, прежде чем печать могла бы уменьшить мерцание также.
ОБНОВЛЕНИЕ: вопрос был изменен на 2 строки вывода вместо 1, который заставляет мой ответ больше не завершиться. Более сложный подход, вероятно, необходим. Мировой судья имеет верное представление с Консолью API. Я полагаю, что следующий сайт детализирует многие вещи, необходимо будет выполнить цель. Сайт также упоминает, что ключ к сокращению мерцания должен представить все вне экрана прежде, чем отобразить его. Это верно каждый раз, когда Вы отображаете что-либо на экране, является ли это текстом или графикой (2D или 3D).
Joseph, мировой судья, и CodingTheWheel все обеспечили ценную справку.
Для моего простого случая самый простой подход, казалось, был основан на ответе CodingTheWheel:
// before entering update loop
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO bufferInfo;
GetConsoleScreenBufferInfo(h, &bufferInfo);
// update loop
while (updating)
{
// reset the cursor position to where it was each time
SetConsoleCursorPosition(h, bufferInfo.dwCursorPosition);
//...
// insert combinations of sprintf, printf, etc. here
//...
}
Для более сложных проблем полный ответ консоли API as provided by JP's, при взаимодействии с примерами, обеспеченными по ссылке из ответа Joseph, может оказаться полезным, но я считал работу необходимой использовать CHAR_INFO
слишком утомительный для такого простого приложения.
В Linux можно выполнить это путем печати \b и/или \r к stderr. Вы, возможно, должны были бы экспериментировать для нахождения правильной комбинации вещей в Windows.
В случае, если предложение Joseph не дает Вам достаточно гибкости, взглянуло на Консоль API: http://msdn.microsoft.com/en-us/library/ms682073 (По сравнению с 85) .aspx.