栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity读取json大文件卡顿

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity读取json大文件卡顿

litjson调用ToObject和ToJson的时候,如果文件内容过大(MB级别),会阻塞主线程造成卡顿,可以使用多线程读取,然后Unity这边开协程等待,这样不会对主线程有影响。

private int _readJsonCount = 0;

IEnumerator InitAllMapInfo()
{
    
    _readJsonCount++;
    ParameterizedThreadStart threadStart = new ParameterizedThreadStart(ReadMapJson);
    Thread thread = new Thread(threadStart);
    thread.Start(m);


    while (_readJsonCount > 0)
    {
        yield return null;
    }
    //读取完毕
}



private void ReadMapJson(object mapId)
{
    try
    {

        int m = int.Parse(mapId.ToString());
        string FullName = GetMapJsonPath(m);
        _dictAllLands.Add(m, JsonMapper.ToObject(File.ReadAllText(FullName)));
        _readJsonCount--;
    }
    catch (Exception e)
    {
        _exMsg = e.Message;
        _readJsonCount--;
    }
}

ParameterizedThreadStart 是可以传参数的Thread,如果不需要,可以用ThreadStart。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号