c# - CEF 线程问题 - 最简单的修复?
问题描述
我正在用 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 浏览器与其主机应用程序之间进行通信,而不会遇到线程问题?
解决方案
推荐阅读
- android - 索引 10 处的非法字符 <">:C:\Android"\analytics.settings
- ios - 带有 AutoLayout 的 ScrollView 不起作用
- java - Servlets - Ajax 重定向到主页
- android - 底部导航查看所选项目上的文本样式
- java - 当无效值作为实体类型传递时如何返回自定义错误消息?
- python - 如何将 XML 转换为 python AST
- java - 如何计算时间戳范围之间的小时和分钟总数(在特定范围内)
- python - 卷积神经网络 50% 准确率问题
- c# - 仅在发行版中存在 UWP 绑定问题
- javascript - Nodejs数组过滤和修改