Дождитесь выполнения условия события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

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