Я пытаюсь с таймером, проверьте, закончилась ли перезагрузка страницы после запуска browser.Reload (); метод
Я не могу использовать LoadingStateChange, потому что мне нужностраница должна быть полностью загружена и однажды загружена запустить скрипт только один раз
Мой код:
public void initTimer()
{
RunScriptAsync(); // this method is executing every one second
}
public bool reloadpage = false; // make the page reload some one time
private async void RunScriptAsync()
{
if (!reloadpage)
{
reloadpage = true;
browser.Reload();
}
var taskcheckdocument = browser.GetMainFrame().EvaluateScriptAsync("(function(){return (document.readyState === 'ready' || document.readyState === 'complete')})();", null);
taskcheckdocument.ContinueWith(check =>
{
if (check.Result != null && check.Result.Result != null && check.Result.Result.ToString().Equals("True"))
{
//execute async script
}
}, TaskScheduler.FromCurrentSynchronizationContext);
}
Однако существует проблема с этим кодом, документ taskcheckdocument недождитесь завершения метода browser.Reload (), и он уже будет выполнен, что приведет к его выполнению без перезагрузки страницы.
Как заставить метод browser.Reload () завершить работу для выполнения кода под ним?