首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >V8 "Platform“为空

V8 "Platform“为空
EN

Stack Overflow用户
提问于 2014-09-04 20:26:04
回答 1查看 697关注 0票数 1

我在隔离范围内调用“隔离->IdleNotification(100)”(通过“v8:隔离::作用域.”),并且在某个时候"V8::GetCurrentPlatform()->CallOnBackgroundThread(...)“在V8中调用"V8::GetCurrentPlatform()“返回NULL,整个事件就会死亡。知道为什么当前的平台可能是空的吗?或者更确切地说,应该做些什么来确保它不是呢?其他的一切似乎都很正常。

添加详细信息:我正在使用Visual 2013,并编译了源代码,其结果库与V8.Net包装器(在codeplex上)一起使用。在触发空闲通知调用之前,我运行以下代码:

代码语言:javascript
复制
v8::Locker __lockScope(engine->Isolate());
v8::Isolate::Scope __isolateScope(engine->Isolate());
v8::HandleScope __handleScope(Isolate::GetCurrent());

我尝试了不同的组合,似乎只需要v8::Locker __lockScope,但平台仍然是空的;

代码语言:javascript
复制
v8::Platform* V8::GetCurrentPlatform() {   
    DCHECK(platform_);   // <-- 'platform_' is NULL
    return platform_; 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-19 09:25:05

之后不久就开始工作了,但忘了贴出答案。它是:谷歌改变了东西(惊喜!:/),现在你必须先初始化一个平台。我这样做了,一切又起作用了:

代码语言:javascript
复制
v8::V8::InitializePlatform(v8::platform::CreateDefaultPlatform());
// Sets the v8::Platform to use. This should be invoked before V8 is initialized.
v8::V8::InitializeICU();
// Initialize the ICU library bundled with V8. (if using the bundled ICU)
v8::V8::Initialize();
// Initialize V8.
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25674419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档