1 回答

TA貢獻1864條經驗 獲得超6個贊
協程不是線程。如果保存操作需要花費大量時間才能完成,請創建一個新線程并在其中執行。有關示例,請參見下面的功能。該代碼已被移到新的線程中。
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。見這對完整的例子。
- 1 回答
- 0 關注
- 175 瀏覽
添加回答
舉報