Потоки и доступ к элементам из них - C#
Формулировка задачи:
Делаю приложение для получения некоторой информации из ВК средствами браузера awesomium, ибо встроенный в C# браузер вк не воспринимает.
В этом браузере эвент загрузки документа не работает, но есть костыли для этого дела. В общем, я загнался, возможно полез в дебри совсем.
Задача. Поочередно открыть две ссылки ВК, со второй ссылки получить текст. Но они не успевают прогрузиться, а как сделать так, чтоб они грузились по очереди - не понимаю. С потоками не сложилось, т.к. не могу в цикле проверять загрузку документа.
Посоветуйте, как поступить.
while(true){ Thread.Sleep(500); if (!webControl1.IsLoading) //Тут ругается про доступ из потока. Но я не понимаю, как ему invoke туда запихать. { //... } }
up, ночью создал, уже уехало вниз
Решение задачи: «Потоки и доступ к элементам из них»
textual
Листинг программы
private void SetCompatibilityMode() { // [url]https://blogs.msdn.microsoft.com/patricka/2015/01/12/controlling-webbrowser-control-compatibility/[/url] // [url]https://msdn.microsoft.com/library/ee330730(v=vs.85).aspx#browser_emulation[/url] string path = @"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"; try { using (RegistryKey key = Registry.CurrentUser.OpenSubKey( path, RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.ReadKey | System.Security.AccessControl.RegistryRights.SetValue)) { string appName = Path.GetFileNameWithoutExtension(Application.ExecutablePath).ToLower(); var valuesToSet = new[] { new { Name = appName + ".exe", Value = 11001u }, new { Name = appName + ".vshost.exe", Value = 11001u } }; foreach (var valueToSet in valuesToSet) { UInt32 stored = Convert.ToUInt32(key.GetValue(valueToSet.Name, 0)); if (stored != valueToSet.Value) { key.SetValue(valueToSet.Name, valueToSet.Value, RegistryValueKind.DWord); } } } } catch { } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д