Я не могу поверить, что этого не задавали раньше, но я не могу найти ссылку здесь. Извините, если я пропустил это! Там есть много обновлений rtb.Text из потока, но мало или вообще нет при получении rtb.Text.Get richtextbox.text from thether thread
Мне нужно получить текстовое значение из richtextbox в потоке пользовательского интерфейса из другого потока, а затем получить возможность прокручивать каждую строку одного и того же richtextbox.
Я предполагаю, что приглашения и делегаты необходимы, но как их создать?
В качестве примера код, если он был в том же потоке, было бы что-то вроде:
private void checkRtbEntries()
{
if (rtb.Text != "")
{
foreach (string textLine in rtb.Lines)
{
// do some things in the background thread
// based on the rtb line content...
}
}
}
Но, checkRtbEntries() вызывается внутри потока BackgroundWorker и RTB в потоке пользовательского интерфейса, поэтому вызывается операция Cross-thread.
Любая помощь или указатели будут оценены.
Просто из быстрого поиска: «C# cross thread получить контрольное значение» ... это аналогичный вопрос, но другой контроль. Найдите ответ: http://stackoverflow.com/questions/18086676/cross-thread-operation-is-not-valid-exception-when-trying-to-get-value-of-comb – HABJAN
Спасибо, я не заметил этого, может быть, когда я искал проблему, а не сообщение об ошибке. Кажется, это немного перебор. Должен быть более простой способ? – gaw