public static IEnumerator ParseAndInitCsvData(string rel_pathname) { string type_name = GetCsvTypeName(rel_pathname); var list_filed = typeof(DB).GetField(type_name + "List"); var map_field = typeof(DB).GetField(type_name + "Map"); IList data_list = null; if (list_filed != null) { data_list = list_filed.GetValue(null) as IList; var data_type = Type.GetType("Entity." + type_name); data_list.Clear(); //yield return Sta var t = Task.Run(async() => { await CsvUtils.DeserializeAsync(CsvHelper.AnalysisCsvListByFile(rel_pathname) , "Entity." + type_name, data_type, data_list); }); while (!t.IsCompleted) { yield return(10); } if (map_field != null) { var map = map_field.GetValue(null) as IDictionary; map.Clear(); var id_fileLd = data_type.GetField("id"); if (id_fileLd != null) { if (id_fileLd != null) { if (data_list.Count == 0) { Debug.LogError($"{rel_pathname}表数据为0"); } for (var i = 0; i < data_list.Count; ++i) { var ele = data_list[i]; var id = (int)id_fileLd.GetValue(ele); map.Add(id, ele); } } else { Debug.LogError($"{rel_pathname}表找不到id字段"); } } } } Test(); }