繁体   English   中英

尝试使用线程在后台保存文件

[英]Trying to use threads to save a file in the background

因此,我尝试使用线程在后台保存文件,以防止主统一线程在保存文件之前冻结:

public void SaveMap() {
  MapRendererBehaviour mapRendererBehaviour = GameObject.FindWithTag("MapRenderer").GetComponent<MapRendererBehaviour>();
  SerializedMap serializedMap = mapRendererBehaviour.ToSerializedData();

  Debug.Log("test");
  _saveMapThread = new Thread(() => {
    string saveMapJson = JsonConvert.SerializeObject(serializedMap);

    File.WriteAllText(_saveMapFilePath, saveMapJson);
  });
}

由于某种原因,线程代码似乎未在执行,因为未保存文件。 如果我注释掉线程创建,只在其中保留线程主体,则文件将正确保存。

任何人都知道我在这里做错了什么(我想我做的有些愚蠢,因为我以前从未尝试过使用线程)。

这可能是在黑暗中拍摄的,但是如果您使用命名线程而不是任务,通常必须在此之后说ThreadName.Start(),例如在声明线程后说:

_saveMapThread.Start();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM