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