本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
终止模拟
使用 Result<void> DestroyApplication(Application&& app)
可终止应用程序和模拟。
从对 BeginUpdateWillBlock()
或 BeginUpdate()
的调用收到 ErrorCode::ShuttingDown
时,其他应用程序发现模拟正在关闭。当应用程序收到时 ErrorCode::ShuttingDown
时,可以调用 Result<void> DestroyApplication(Application&& app)
来自行终止。
例 示例
Result<void> AppDriver::EncounteredAppError(Application&& application) noexcept { const ErrorCode errorCode = WEAVERRUNTIME_EXPECT_ERROR(runAppResult); switch (errorCode) { case ErrorCode::ShuttingDown: { // insert custom shutdown process here. WEAVERRUNTIME_TRY(Api::DestroyApplication(std::move(application))); return Success(); } default: { OnAppError(errorCode); return errorCode; } } }
重要
只能在 Result<void> DestroyApplication(Application&& app)
之后调用 Api::Commit()
。在更新过程中销毁应用程序可能会导致未定义的行为。
重要
您必须在程序退出之前调用 DestroyApplication()
,以确保应用程序报告为成功终止。
程序退出时未能调用 DestroyApplication()
将导致状态报告为 FATAL
。