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