Механизм FIFO в RichTextBox - PullRequest
       13

Механизм FIFO в RichTextBox

1 голос
/ 13 апреля 2010

Есть ли простой способ реализовать FIFO в элементе управления RichTextBox?

На самом деле у меня есть инструмент тестирования, который выдает более 1000 строк в минуту, поэтому я хочу ограничить общее количество строк, и когда в элемент управления добавляется новая строка, последняя строка должна быть удалена.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2010

Не ответ на ваш вопрос, но вы читаете все 1000 сообщений в минуту? Есть ли способ (или уже есть), чтобы регистрировать только сообщения с «уровня». цитата из Java:

* SEVERE (highest value)
* WARNING
* INFO
* CONFIG
* FINE
* FINER
* FINEST (lowest value)

Например: обычно вы должны иметь: сообщение 1 (отладка) и сообщение 2 (SEVERE) Префикс каждой строки в соответствии с их уровнем:

  • 1: сообщение 1
  • 7: сообщение 2

Теперь вы можете изменить свой инструмент тестирования, чтобы регистрировать только определенный уровень. 7 журналов всего, 1 журналов только 1 и т. Д. Результатом является меньше ненужных журналирования и читабельного вывода (например, 2 сообщения должны появляться сразу друг за другом, но из-за многопоточности в журнале 20 сообщений ...)

0 голосов
/ 13 апреля 2010

Сегодня я наткнулся на Шаблон проектирования с бесконечной прокруткой . Я думаю, что это может помочь.

СТАРЫЙ ОТВЕТ:

List<string> lines = new List<string>();

int max = 2;

int n = 0;

private void button1_Click(object sender, EventArgs e)
{
    lines.Insert(0,n.ToString());

    richTextBox1.Text = string.Join("\n", lines.Take(max).ToArray<string>());

    n++;
}

Это очень простой FIFO. Также в List<string> l вы всегда будете иметь лог:)

...