Проблемы с CEF - проще всего исправить? - PullRequest
0 голосов
/ 01 октября 2018

Я заменяю 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 и его хост-приложением без проблем с многопоточностью?

...