По нажатию на кнопку, выполняется два действия:
Первое вызов функции, которая вызывает отправку сообщения и получает ответ (использование функции GetAnswer подсмотрел отсюда
https://www.cyberforum.ru/windows-forms/thread2639...):
static public async Task<string> GetAnswer(string text)
{
return await Task.Run(() => Send(text));
}
static public async Task<string> Send(string text)
{
var content = new StringContent(text);
var response = await client.PostAsync("http://localhost:9901/", content);
var text1 = response.Content.ReadAsStringAsync().Result.ToString();
return text1;
}
Второе действие - обработка получаемого значения:
static public string ResponseProcessing(string text)
{
switch (text)
{
case "0":
return "Не работает";
case "1":
return "Работает";
default:
return "Произошла ошибка";
}
}
Код кнопки, которая должна посылать значение из текстбокса, а обработанный ответ положить в другой текстбокс:
private void requestButton_Click(object sender, EventArgs e)
{
string response = RequestClass.GetAnswer(idTextBox.Text).ToString();
answerTextBox.Text = RequestClass.ResponseProcessing(response);
}
Проблема заключается в том, что сначала выполняется первая функция, с параметром равным null, а только следом за ней идет вторая. Проблема решается использованием Sleep, однако, насколько я понимаю это всего лишь костыль. Как правильно решить эту проблему?