Имеется две формы Form1 и Form2
Имеется функция в Form1:
public void setLog(string txt)
        {
            if (this.richTextBox1.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(setLog);
                this.Invoke(d, new object[] { txt + "\n" });
            }
            else
            {
                this.richTextBox1.Text = this.richTextBox1.Text + txt + "\n";
                this.richTextBox1.SelectionStart = this.richTextBox1.Text.Length;
                this.richTextBox1.ScrollToCaret();
                try
                {
                    string path = Directory.GetCurrentDirectory() + "\\udp.log"; // Get the current directory.
                    DateTime current = DateTime.Now;
                    System.IO.StreamWriter file = new System.IO.StreamWriter(path, true);
                    file.WriteLine(current + ": " + txt + "\n");
                    file.Close();
                }
                catch (Exception e)
                {
                    MessageBox.Show("Произошла непредвиденная ошибка.\n" + e, "Ошибка");
                }
            }
        }
Так же имеется отдельный тред для подключения и выполнения запроса в Form1:
        public Form1()
        {
            InitializeComponent();
            setLog("Reading sql config.");
            Thread MyThread = new Thread(new ThreadStart (loadSQL));
            MyThread.Start();
        }
        ...
        private void loadSQL()
        {
            MySqlConnection connection = new MySqlConnection(connectionString);
            ...
            setLog("Done. Loaded " + count + " servers.");
        }
Суть: если не использовать мультипоточность, проблем с setLog не возникает при вызове Form2.
А если используется и вызвать Form2, то вываливается ошибка: Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
this.Invoke(d, new object[] { txt + "\n" }); // вот на этой линии в функции setLog
Вопрос: как заставить все правильно работать и избежать этого эксцепшена?


 
	 
			
			
			
				 This topic is locked
 This topic is locked 
					
 
				
				
				
