wywołanie metody przez inny wątek

0

pomożecie mi z tym problemem proszę ?

mam metodę textLogInfo, która wyświetla jakiś tekst w RichTextBox'ie
w momencie kiedy tę metodę wywołuję z innego wątku program mi sypie wyjątkiem:

Cross-thread operation not valid: Control 'textPodlaczonych' accessed from a thread other than the thread it was created on.

w ten sposób tworzę wątek:

usersCount = new Thread(ZliczUserowSql);
usersCount.Start();

a tutaj metoda do bazy danych

 public void ZliczUserowSql()
        {
            string query = "SELECT Count(*) FROM users WHERE status=1";
            MySqlCommand cmd = new MySqlCommand(query, polaczenieSql);            
            int Count = -1;
            
            if (polaczenieSql.State == ConnectionState.Open)
            {
                    
                Count = int.Parse(cmd.ExecuteScalar() + "");

                textPodlaczonych.AppendText(Count.ToString());
            }
            else
            {
                textPodlaczonych.AppendText(Count.ToString());
            }            
        }

podaje on też odnośnik do strony www MSDN , ale zgłupiałem przy niej już totalnie :)

1

Ileż razy jeszcze ten temat się pojawi....

Poczytaj o Invoke

0

znalazłem , dzięki serdeczne za wskazówkę :)

dla przyszłych poszukujących zostawiam jeszcze to:

http://www.csharp411.com/manipulating-controls-across-threads/

0

A zamiast Invoke, jeszcze lepiej o BeginInvoke :)

0

Albo jeśli uważasz, że nic nie skopiesz, ustaw Control.CheckForIllegalCrossThreadCalls = false;

1 użytkowników online, w tym zalogowanych: 0, gości: 1