CefSharp SetProxyAsync: дождитесь и проверьте перед навигацией
RequestContext.SetProxyAsync планирует настройку в UI-потоке CEF; UI-поток WinForms/WPF не является этим потоком автоматически.
Используйте инициализированный контекст запроса, обслуживающий нужный браузер:
using System;
using CefSharp;
var result = await requestContext.SetProxyAsync(
"http", "proxy.example", 8080);
if (!result.Success)
{
throw new InvalidOperationException(result.ErrorMessage);
}Дождитесь завершения операции и обработайте сбой до навигации. Для разрешённой проверки публичного сайта список HTTP-прокси даёт кандидатов для аргументов хоста и порта HTTP. SetProxyAsync планирует обновление настройки в UI-потоке CEF и выбирает fixed_servers.
Если результат сообщает, что настройка доступна только для чтения, проверьте прокси-флаги командной строки; они могут препятствовать этому обновлению. Ожидание само по себе не превращает отклонённое изменение в применённый маршрут.
Прямой вызов SetPreference по-прежнему требует UI-потока CEF. При обычной многопоточной схеме цикла сообщений UI-поток WinForms или WPF ведущего приложения — это другой контекст.
Браузеры, разделяющие контекст запроса, разделяют и настройку. Это выбирает конечную точку; отдельный обратный вызов аутентификации должен ограничивать учётные данные предполагаемым прокси-запросом.