Я использую AvalonEdit уже более 2 лет без проблем, и он прекрасно работает
У меня только одна проблема при изменении текста из фоновой нити
с использованием SetOwnerThread()
триггера метода VerifyAccess()
Исключение каждый раз даже при вызове из основного потока
Если я делаю все в основном потоке, это работает, но это также останавливает пользовательский интерфейс
Именно поэтому я хочу сделать это в другом потоке и показать пользователю индикатор загрузки
I не могу понять, что я делаю здесь не так
Любая помощь или идея будут высоко оценены
Заранее спасибо
Редактировать:
Я не знаю не хотите использовать Dispatcher.Invoke
, потому что он будет блокировать пользовательский интерфейс при обновлении
Пример кода
public async void EditTextSample()
{
Thread lUiThread = Thread.CurrentThread;
//SelectedTab is the current tab viewed by the user in my application
SelectedTab.TextEditor.Document.SetOwnerThread(null);
await Task.Run(() =>
{
Thread lBackgroundThread = Thread.CurrentThread;
SelectedTab.TextEditor.Document.SetOwnerThread(lBackgroundThread);
string lNewText = ""
SelectedTab.TextEditor.Document.Text = lNewText;
SelectedTab.TextEditor.Document.SetOwnerThread(lUiThread);
});
}
Некоторые снимки экрана
https://imgur.com/VKsGXvk