国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity冷知識:async/await Task的用法限制和解決

2023-03-06 17:56 作者:獨(dú)立游戲人-老雷  | 我要投稿

冷知識1:Unity API不是線程安全的

因此,你應(yīng)該只在UnitySynchronizationContext中使用async和await Task;

異步Task經(jīng)常在被調(diào)用時(shí)分配對象,如果過度使用,可能會導(dǎo)致性能問題。

冷知識2:如果要使用異步任務(wù),你必須:

  1. 使用手動創(chuàng)建和處理自己的線程Task.RunAPI

  2. 使用默認(rèn)的SynchronizationContext而不是Unity版本

Unity會用自定義的UnitySynchronizationContext覆蓋默認(rèn)的SynchronizationContext,它在主線程上運(yùn)行所有的Task(不管是Editor模式還是Play模式下)

冷知識3:Unity不會自動停止運(yùn)行在托管線程(主線程)上的異步Task,因此必須:

監(jiān)聽Play模式的進(jìn)入和退出(通過EditorApplication.playModeStateChanged事件委托)

如果這么做了,Unity的腳本API在切換回UnitySynchronizationContext之前,都是不可用的!

冷知識4:在development build打包模式下,在非托管線程運(yùn)行UnityAPI,會看到如下報(bào)錯:

冷知識5:出于性能考量,在不采用development build模式打包時(shí),Unity不會報(bào)上述錯誤,但會因多線程問題造成程序隨機(jī)崩潰或未知錯誤!

因此,Unity建議不要在腳本中使用多線程,除非……

冷知識6:要安全的使用多線程,并享受其帶來的性能優(yōu)勢,可以使用Unity的Job System


Unity冷知識:async/await Task的用法限制和解決的評論 (共 條)

分享到微博請遵守國家法律
凤翔县| 巩留县| 夏邑县| 肇州县| 桐柏县| 新竹县| 凯里市| 全南县| 调兵山市| 芜湖市| 昌平区| 闽清县| 湟源县| 余庆县| 蚌埠市| 大新县| 新丰县| 广南县| 全州县| 健康| 北安市| 上高县| 大名县| 大渡口区| 通化市| 永康市| 兖州市| 桑植县| 梧州市| 勐海县| 南部县| 嘉鱼县| 措勤县| 宁武县| 上饶县| 鄂温| 洮南市| 永定县| 汤阴县| 台州市| 桂阳县|