gpt4 book ai didi

c# - 我们如何使用统一在后台保存大量数据?

转载 作者:搜寻专家 更新时间:2023-10-30 23:30:18 25 4
gpt4 key购买 nike

我想在后台将大量数据保存在本地数据库中,但是当我尝试保存数据时,我的 Unity IDE 会挂起 2-3 分钟。 2-3 分钟后,一切正常。任何人都可以建议我该怎么做。下面是我的示例代码

private IEnumerator WaitAndPrint(TestController.TestReportModel report)
{
dbHelper.deleteAllFromTable(dbHelper.TABLE_OFFLINE_MASTER_TEST_REPORT);
dbHelper.deleteAllFromTable(dbHelper.TABLE_MASTER_OFFLINE_POINT_DATA);
for (int i = 0; i < report.data.Count; i++)
{
TestController.TestData MasterData = report.data[i];
dbHelper.AddOfflineMasterTestReport(MasterData, "");
}
yield return new WaitForSeconds(1);
}

最佳答案

协程不是线程。如果保存操作需要很长时间才能完成,请创建一个新线程并在那里执行。有关示例,请参见下面的函数。该代码已移至新线程中。

void WaitAndPrint(TestController.TestReportModel report)
{
//Create Thread
Thread thread = new Thread(delegate ()
{
dbHelper.deleteAllFromTable(dbHelper.TABLE_OFFLINE_MASTER_TEST_REPORT);
dbHelper.deleteAllFromTable(dbHelper.TABLE_MASTER_OFFLINE_POINT_DATA);

for (int i = 0; i < report.data.Count; i++)
{
TestController.TestData MasterData = report.data[i];
dbHelper.AddOfflineMasterTestReport(MasterData, "");
}
});
//Start the Thread and execute the code inside it
thread.Start();
}

您现在可以直接调用您的函数,它不会卡住 Unity:WaitAndPrint(report);

如果您想从新的 Threa 使用 Unity 的 API,请使用 UnityThread.executeInUpdate。参见 this完整的例子。

关于c# - 我们如何使用统一在后台保存大量数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49975375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com