Как отделить действие типа textBox1 и использовать textBox1.Text для получения строки из Интернета?

Я пишу код, который, когда я набираю textBox1, моя WinForm отправляет textBox1.Text на веб-сервер, обрабатывает текст, возвращаемая строка отображается как всплывающая подсказка.

Моя проблема в том, что когда я набираю символ в textBox1, я не могу ввести следующий символ, пока не ответит веб-сервер. Я пробовал с textBox1.KeyDown, textBox1.KeyUp и textBox1.TextChanged, но они, кажется, не помогают мне решить эту проблему.

Я хочу, чтобы при вводе textBox1 на меня не влияло действие получения строки с сервера.

Есть ли способ отделить действие типа и получить сервер текстовой формы? Большое спасибо.

[Извините за плохой английский]


person Tuyen Pham    schedule 11.10.2012    source источник


Ответы (1)


Вы блокируете поток пользовательского интерфейса, пока получаете данные с сервера. Вам нужно получить эти данные в отдельном потоке. Проверьте: http://msdn.microsoft.com/en-us/library/ms229675.aspx

person Johnny Mopp    schedule 11.10.2012
comment
У меня есть подозрение, что программа TuyenTk пытается получить ответ каждый раз, когда изменяется текстовое поле. Если это так, то будет довольно много ответов в зависимости от длины вводимого текста. - person Ichabod Clay; 11.10.2012
comment
Да. В его потоке dl ему потребуется небольшая задержка перед началом загрузки. Затем, если во время этой задержки будет нажата другая клавиша, первый запрос может быть прерван и запущен новый (с той же предварительной задержкой). - person Johnny Mopp; 11.10.2012