Чтобы иметь отзывчивый пользовательский интерфейс, вы должны использовать другой поток.
Но если вы используете Visual Studio, сгенерированный клиентский класс имеет асинхронные сигнатуры методов, которые сделают это за вас. Если ваш метод
«GetData», тогда у вас должен быть метод под названием «GetDataAsync», который бы не замораживал ваше окно.
Вот пример:
WsClient client;
protected override void Load() {
base.Onload();
client = new WsClient();
client.GetDataCompleted += new GetDataCompletedEventHandler(client_GetDataCompleted);
}
//here is the call
protected void Invoke()
{
client.GetDataAsync(txtSearch.Text);
}
//here is the result
void client_GetDataCompleted(object sender, GetDataCompletedEventArgs e)
{
//display the result
txtResult.Text = e.Result;
}