国产精品天干天干,亚洲毛片在线,日韩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的用法限制和解決的評論 (共 條)

分享到微博請遵守國家法律
晋宁县| 普陀区| 余江县| 井冈山市| 九江市| 聂拉木县| 兴业县| 四会市| 林口县| 阳朔县| 江达县| 内乡县| 休宁县| 隆安县| 桃园市| 奉贤区| 武邑县| 西乡县| 团风县| 沅江市| 南皮县| 屏东市| 阿瓦提县| 西乌珠穆沁旗| 康定县| 菏泽市| 鸡东县| 安陆市| 渭南市| 宾阳县| 曲麻莱县| 台江县| 云霄县| 商都县| 穆棱市| 浠水县| 瓮安县| 准格尔旗| 手游| 上蔡县| 霸州市|