[英]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.