Проблемы с CEF - проще всего исправить?

Я заменяю xulrunner в приложении C# WinForms на CEFSharp. Все началось замечательно - я включил CEF и начал работать без особых усилий.

Теперь у меня проблемы с потоками, и я не уверен, что это лучший способ их исправить. У меня есть несколько функций в Javascript, которые вызывают код формы и наоборот. Вещи как это...

public void ZoomFinished(string data)
{
   try
   {
        bool finished = false;

        if (!_firstTileRun)
        {
            _tileBounds = JsonConvert.DeserializeObject<Bounds>(data);  // Save tile from previous run
            Models.PointD nePoint = _tileBounds.NE.Point;
            Models.PointD swPoint = _tileBounds.SW.Point;

            int tileWidth = (int)(nePoint.X - swPoint.X);
            int tileHeight = (int)(swPoint.Y - nePoint.Y);

            // Save tile from previous run
        int mapWidth = this.Width;
        int mapHeight = this.Height;

            Point browserLocation = webBrowser1.PointToScreen(Point.Empty);
          
           ....

Когда я пытаюсь вызвать методы веб-браузера, я получаю жалобы, что я не в той ветке. Должен ли я пытаться вызвать эти звонки? Или проще попробовать запустить свой собственный цикл сообщений, чтобы избежать нескольких потоков? (хотя, кажется, примеров этому не много!). Разумеется, должен существовать "правильный" способ связи между веб-браузером CEF и его хост-приложением без проблем с многопоточностью?

0 ответов

Другие вопросы по тегам