Поток - вывод richTextBox1 - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Хочу вывести информацию в richTextBox1 из потока. Раньше пользовался таким:
Листинг программы
  1. richTextBox1.Invoke((MethodInvoker)delegate
  2. {
  3. richTextBox1.AppendText("lala");
  4. });
Захотел оформить создание потока в "отдельном классе". Допустим вот такой кодец:
Листинг программы
  1. class MyThread : Form1
  2. {
  3. public MyThread()
  4. {
  5. Thread Thrd = new Thread(this.Run);
  6. Thrd.Start();
  7. }
  8. void Run()
  9. {
  10. // Так не хочет
  11. richTextBox1.Invoke((MethodInvoker)delegate
  12. {
  13. richTextBox1.AppendText("lala");
  14. });
  15. }
  16. }
  17. private void button1_Click(object sender, EventArgs e)
  18. {
  19. MyThread mt = new MyThread();
  20. }
Выдаёт ошибку: "Additional information: Невозможно вызвать Invoke или BeginInvoke для элемента управления до завершения создания дескриптора окна." Покопался в интернете - сам не могу понять, что делать. Помогите пожалуйста.

Решение задачи: «Поток - вывод richTextBox1»

textual
Листинг программы
  1. class MyThread
  2. {  
  3.     RichTextBox _rtb;
  4.  
  5.     public MyThread(RichTextBox rtb)
  6.     {
  7.         _rtb = rtb;
  8.         Thread Thrd = new Thread(this.Run);
  9.         Thrd.Start();
  10.     }
  11.            
  12.     void Run()
  13.     {
  14.         rtb.Invoke((MethodInvoker)delegate
  15.         {
  16.             rtb.AppendText("lala");
  17.         });                
  18.  
  19.        // Новый код
  20.        Form1 f1 = new Form1();
  21.        f1.new_function(thread_number);
  22.     }
  23. }
  24.  
  25. private void button1_Click(object sender, EventArgs e)
  26. {
  27.     MyThread mt = new MyThread(richTextBox1);
  28. }
  29.  
  30. public void new_function(thread_number)
  31. {
  32.     // Как тут добивать содержимое к richTextBox1?
  33. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы