簡體   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