Я вызываю «Изолировать -> IdleNotification (100)» в пределах области выделения (через «v8 :: Изоляция :: Область ...»), и в какой-то момент, когда «V8: : GetCurrentPlatform() -> CallOnBackgroundThread (...) "вызывается внутри V8," V8 :: GetCurrentPlatform() "возвращает NULL, и все это умирает смертельной смертью. Любые идеи, почему текущая платформа может быть нулевой? Вернее, что нужно сделать, чтобы убедиться, что это не так? Все остальное, кажется, работает нормально.V8 «Платформа» имеет значение
Детали добавления: Я использую Visual Studio 2013 и скомпилировал исходный код, в результате библиотеки которого я использую оболочку V8.Net (в кодексе). Я бег следующего кода перед запуском на холостой ход вызова уведомления:
v8::Locker __lockScope(engine->Isolate());
v8::Isolate::Scope __isolateScope(engine->Isolate());
v8::HandleScope __handleScope(Isolate::GetCurrent());
Я пробовал разные комбинации, и, кажется, требуется только v8::Locker __lockScope
, но платформа по-прежнему нулевая;
v8::Platform* V8::GetCurrentPlatform() {
DCHECK(platform_); // <-- 'platform_' is NULL
return platform_;
}