CEF线程问题-最简单的解决方法?

时间:2018-10-01 02:28:48

标签: c# winforms chromium-embedded

我用CEFSharp替换了C#WinForms应用程序中的xulrunner。一切始于美好-我投入了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);
          
           ....

当我尝试调用Web浏览器的方法时,我抱怨自己的线程不正确。我应该尝试调用这些电话吗?还是尝试运行自己的消息循环来避免多个线程更容易? (虽然似乎没有很多示例!)。当然,CEF Web浏览器与其主机应用程序之间必须存在一种“适当”的通信方式,而不会遇到线程问题?

0 个答案:

没有答案