本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
終止模擬
用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
。