Дождитесь выполнения условия событияC#

Место общения программистов C#
Ответить
Anonymous
 Дождитесь выполнения условия события

Сообщение Anonymous »

Я открываю веб-сайт с помощью Puppeteer и жду определенного ответа на сетевой панели, используя следующий код:

Код: Выделить всё

public string result { get; set; }
IBrowser browser;
private async void button1_Click(object sender, EventArgs e)
{
await Do();
await browser.CloseAsync();
textBox1.AppendText(result);
}

private async Task Do()
{
var browser = await Puppeteer.LaunchAsync();
this.browser = browser;
var page = await browser.NewPageAsync();

page.Response += async (s, e) =>
{
if (e.Response.Request.Url == "URL_1")
{
result = await e.Response.TextAsync();

return;
}
};

await page.GoToAsync("URL_2");
}
При каждом ответе сети он запускает событие, проверяющее, был ли URL-адрес запроса ответа URL_1, и если да, то получает тело ответа и записывает его в текстовое поле, а затем закрывает браузер. Но иногда он просто закрывает браузер с нулевым результатом и пустым текстовым полем. Я предполагаю, что это происходит потому, что условие события не было выполнено, а метод Do() только что завершился.
Как я могу заставить его ждать выполнения условия события и только затем завершить работу Do() метод?

Подробнее здесь: https://stackoverflow.com/questions/785 ... ulfillment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»