Параллельный вызов метода C# WPF

310
14 ноября 2017, 22:01

Допустим у меня есть метод, который принимает в качестве параметров 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;
}
Answer 1

Попробуйте примерно так. Интерфейс по крайней мере не будет заблокирован.

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, "Два"));
}
READ ALSO
Разбиением картинки на символы

Разбиением картинки на символы

Добрый день, друзья! Встала предо мной задача реализация простенького распознавания текста с картинки (условие: чужеродные библиотеки для...

267
C# Построение графиков по БД [требует правки]

C# Построение графиков по БД [требует правки]

Здравствуйте,дайте пожалуйста ссылку на ресурс с подробным разбором построения графиков на Windows FormsМоя задача, брать данные с БД какие записываются...

227
Изменение метаданные docx на C# (для цифровой подписи)

Изменение метаданные docx на C# (для цифровой подписи)

Хочу добавить электронную цифровую подпись к документу docxХочу добавить хэш в метаданные документа, чтобы он не находился явно в тексте документа

203