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