最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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的用法限制和解決的評論 (共 條)

分享到微博請遵守國家法律
德庆县| 上林县| 清远市| 方城县| 白朗县| 怀柔区| 南京市| 城市| 灯塔市| 南召县| 武邑县| 宿松县| 贵港市| 周至县| 嘉义县| 扬中市| 利津县| 高要市| 和硕县| 漾濞| 芷江| 永吉县| 正镶白旗| 榆树市| 青冈县| 余姚市| 淮安市| 闵行区| 旬邑县| 吴川市| 三河市| 康乐县| 嘉禾县| 平和县| 昭通市| 天峨县| 汝南县| 土默特右旗| 巍山| 五常市| 绥江县|