Допустим у меня есть метод, который принимает в качестве параметров 2 строки и возвращает одну строку.
public string func(string one, string two)
{
string result = one + two;
return result;
}
У меня этот метод вызывается каждый раз, когда меняется значение в текстовом поле
private void textBoxOriginal_TextChanged(object sender, TextChangedEventArgs e)
{
OutputText = func("StringOne", "StringTwo");
}
Изменение происходит довольно часто, из-за этого есть небольшие подвисания. Как можно это решить? Пытался так:
Task.Factory.StartNew(() =>
{
});
Но вылетает с такой ошибкой: "Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток." Спасибо UPD при написании текста в textBoxOriginal вызываю TranslateText, который должен после выполнения некоторых операций textBoxResult присвоить результат.
async private void textBoxOriginal_TextChanged(object sender, TextChangedEventArgs e)
{
this.textBoxResult.Text = await Task.Run(() => AdditionStrings(this.textBoxOriginal.Text, "Plus This"));
}
public void AdditionStrings(string one, string two)
{
string result = one+two;
...
this.textBoxResult.Text = result;
}
Попробуйте примерно так. Интерфейс по крайней мере не будет заблокирован.
public string AdditionStrings(string one, string two)
{
string result = one + two;
//это для задержки, типа долго вычисляем...
Task.Delay(TimeSpan.FromSeconds(3)).Wait();
return result;
}
private async void buttonOK_Click(object sender, RoutedEventArgs e)
{
var text = this.textBoxOriginal.Text;
this.textBoxResult.Text = await Task.Run(() => AdditionStrings(text, "Два"));
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый день, друзья! Встала предо мной задача реализация простенького распознавания текста с картинки (условие: чужеродные библиотеки для...
Здравствуйте,дайте пожалуйста ссылку на ресурс с подробным разбором построения графиков на Windows FormsМоя задача, брать данные с БД какие записываются...
Хочу добавить электронную цифровую подпись к документу docxХочу добавить хэш в метаданные документа, чтобы он не находился явно в тексте документа