NULL Ссылка Исключение в RichTextbox - PullRequest
1 голос
/ 06 января 2010

Я пишу dll для захвата карманов портов (например, tcp sniffer) в vc ++. Это приложение использует поток для непрерывного извлечения карманов и имеет событие для отправки данных в приложение c#.

Это c# приложение получает эти карманные данные и сохраняет эти данные в текстовом файле из richtextbox каждые 10 секунд, а затем очищает текстовое поле.

Запускается, но иногда выдает исключение нулевой ссылки.

ошибка:

at System.Windows.Forms.RichTextBox.EditStreamProc(IntPtr dwCookie, IntPtr buf, Int32 cb, Int32& transferred)
   at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
   at System.Windows.Forms.Control.DefWndProc(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.TextBoxBase.WndProc(Message& m)
   at System.Windows.Forms.RichTextBox.WndProc(Message& m)
   at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

1 Ответ

0 голосов
/ 16 марта 2015

Измените процедуру обновления следующим образом:

 debugText.SuspendLayout();
 debugText.Focus();
 debugText.SelectionStart = 0;
 debugText.SelectionLength = 0;
 debugText.SelectedText += message;
 debugText.SelectedText += Environment.NewLine;
 debugText.ResumeLayout();

Сосредоточение внимания каждый раз - это то, что устраняет сбой.

...