国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

            手機(jī)站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

            千鋒教育

            掃一掃進(jìn)入千鋒手機(jī)站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

            當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > unity多線程教程

            unity多線程教程

            來(lái)源:千鋒教育
            發(fā)布人:wjy
            時(shí)間: 2022-07-29 16:58:00 1659085080

              前言

              在這之前,有很多人在質(zhì)疑Unity支不支持多線程,事實(shí)上Unity是支持多線程的。而提到多線程就要提到Unity非常常用的協(xié)程,然而協(xié)程并非真正的多線程。協(xié)程其實(shí)是等某個(gè)操作完成之后再執(zhí)行后面的代碼,或者說是控制代碼在特定的時(shí)機(jī)執(zhí)行。而多線程在Unity渲染和復(fù)雜邏輯運(yùn)算時(shí)可以高效的使用多核CPU,幫助程序可以更高效的運(yùn)行。本篇主要介紹在Unity中如何使用多線程。

            unity多線程教程

              · 首先引入C#中使用多線程的類庫(kù)

              using System.Threading;

              · 創(chuàng)建線程實(shí)例的四種方式

              1.線程執(zhí)行無(wú)參方法

              · 構(gòu)造語(yǔ)法

              ///

             

              /// 初始化 Thread 類的新實(shí)例。

              ///

             

              ///無(wú)參委托對(duì)象.

              public Thread(ThreadStart start)

              start

              類型:System.Threading.ThreadStart

              表示開始執(zhí)行此線程時(shí)要調(diào)用的方法的 ThreadStart 委托。

              · 實(shí)例

              void Start()

              {

              //創(chuàng)建無(wú)參線程對(duì)象

              Thread thr = new Thread(Func_NoArguments);

              //啟動(dòng)線程

              thr.Start();

              }

              ///

             

              /// Function Of No Arguments.

              ///

             

              void Func_NoArguments()

              {

              Debug.Log("Run Func_NoArguments");

              }

              2.線程執(zhí)行有參方法

              · 構(gòu)造語(yǔ)法

              ///

             

              /// 初始化 Thread 類的新實(shí)例。

              ///

             

              ///有參委托對(duì)象.

              public Thread(ParameterizedThreadStart start)

              start

              類型:System.Threading.ParameterizedThreadStart

              一個(gè)委托,它表示此線程開始執(zhí)行時(shí)要調(diào)用的方法。

              注意:參數(shù)只能有一個(gè),且必須為object類型

              · 實(shí)例

              void Start()

              {

              //創(chuàng)建有參線程對(duì)象

              Thread thr = new Thread(Func_Arguments);

              //啟動(dòng)線程,傳入?yún)?shù)

              thr.Start("Lanou");

              }

              ///

             

              /// Function Of Have Arguments.

              ///

             

              void Func_Arguments(object data)

              {

              Debug.Log("Run Func_Arguments, Data = " + data);

              }

              3.線程執(zhí)行無(wú)參方法,限制線程要使用的最大堆棧大小

              · 構(gòu)造語(yǔ)法

              ///

             

              /// 初始化 Thread 類的新實(shí)例。

              ///

             

              ///無(wú)參委托對(duì)象.

              ///使用的最大堆棧大小.

              public Thread(ThreadStart start,int maxStackSize)

              start

              類型:System.Threading.ThreadStart

              表示開始執(zhí)行此線程時(shí)要調(diào)用的方法的 ThreadStart 委托。

              maxStackSize

              類型:System.Int32

              線程要使用的最大堆棧大小(以字節(jié)為單位);如果為 0,則使用可執(zhí)行文件的文件頭中指定的默認(rèn)最大堆棧大小。

              重要事項(xiàng):對(duì)于部分受信任的代碼,如果 maxStackSize 大于默認(rèn)堆棧大小,則將其忽略。 不引發(fā)異常。

              · 實(shí)例

              void Start()

              {

              //創(chuàng)建無(wú)參線程對(duì)象,限制256KB堆棧大小

              Thread thr = new Thread(Func_NoArguments,262144);

              //啟動(dòng)線程

              thr.Start();

              }

              ///

             

              /// Function Of No Arguments.

              ///

             

              void Func_NoArguments()

              {

              Debug.Log("Run Func_NoArguments");

              }

              4.線程執(zhí)行有參方法,限制線程要使用的最大堆棧大小

              · 構(gòu)造語(yǔ)法

              ///

             

              /// 初始化 Thread 類的新實(shí)例。

              ///

             

              ///有參委托對(duì)象.

              ///使用的最大堆棧大小.

              public Thread(ParameterizedThreadStart start,int maxStackSize)

              start

              類型:System.Threading.ParameterizedThreadStart

              一個(gè)委托,它表示此線程開始執(zhí)行時(shí)要調(diào)用的方法。

              注意:參數(shù)只能有一個(gè),且必須為object類型

              maxStackSize

              類型:System.Int32

              線程要使用的最大堆棧大小(以字節(jié)為單位);如果為 0,則使用可執(zhí)行文件的文件頭中指定的默認(rèn)最大堆棧大小。

              重要事項(xiàng):對(duì)于部分受信任的代碼,如果 maxStackSize 大于默認(rèn)堆棧大小,則將其忽略。 不引發(fā)異常。

              · 實(shí)例

              void Start()

              {

              //創(chuàng)建有參線程對(duì)象,限制256KB堆棧大小

              Thread thr = new Thread(Func_Arguments,262144);

              //啟動(dòng)線程,傳入?yún)?shù)

              thr.Start("Lanou");

              }

              ///

             

              /// Function Of Have Arguments.

              ///

             

              void Func_Arguments(object data)

              {

              Debug.Log("Run Func_Arguments, Data = " + data);

              }

              · 啟動(dòng)線程(上文已使用)

              · 無(wú)參啟動(dòng)

              void Start()

              {

              //創(chuàng)建無(wú)參線程對(duì)象

              Thread thr = new Thread(Func_NoArguments);

              //啟動(dòng)線程

              thr.Start();

             

               }

                /// <summary>

                /// Function Of No Arguments.

                /// </summary>

                void Func_NoArguments()

                {

                    Debug.Log("Run Func_NoArguments");

                }

             

              · 有參啟動(dòng)

              void Start()

              {

              //創(chuàng)建有參線程對(duì)象

              Thread thr = new Thread(Func_Arguments);

              //啟動(dòng)線程,傳入?yún)?shù)

              thr.Start("Lanou");

             

                }

                /// <summary>

                /// Function Of Have Arguments.

                /// </summary>

                void Func_Arguments(object data)

                {

                    Debug.Log("Run Func_Arguments, Data = " + data);

                }

              · 常用方法

              · public static void Sleep( int millisecondsTimeout)將當(dāng)前線程掛起指定的毫秒數(shù)。

              millisecondsTimeout

              millisecondsTimeout

              類型:System.Int32

              掛起線程的毫秒數(shù)。 如果 millisecondsTimeout 參數(shù)的值為零,則該線程會(huì)將其時(shí)間片的剩余部分讓給任何已經(jīng)準(zhǔn)備好運(yùn)行的、有同等優(yōu)先級(jí)的線程。 如果沒有其他已經(jīng)準(zhǔn)備好運(yùn)行的、具有同等優(yōu)先級(jí)的線程,則不會(huì)掛起當(dāng)前線程的執(zhí)行。

              · public void Resume()

              繼續(xù)已掛起的線程。(已過時(shí))

              · public void Abort()

              在調(diào)用此方法的線程上引發(fā) ThreadAbortException,以開始終止此線程的過程。 調(diào)用此方法通常會(huì)終止線程。

              · public void Join()

              阻止調(diào)用線程直到線程終止,同時(shí)繼續(xù)執(zhí)行標(biāo)準(zhǔn)的 COM 和 SendMessage 傳送。

              · public enum ThreadPriority

              指定 Thread 的調(diào)度優(yōu)先級(jí)。

            成員名稱

            描述

            AboveNormal

            可以將 Thread 安排在具有 Highest 優(yōu)先級(jí)的線程之后,在具有 Normal 優(yōu)先級(jí)的線程之前。

            BelowNormal

            可以將 Thread 安排在具有 Normal 優(yōu)先級(jí)的線程之后,在具有 Lowest 優(yōu)先級(jí)的線程之前。

            Highest

            可以將 Thread 安排在具有任何其他優(yōu)先級(jí)的線程之前。

            Lowest

            可以將 Thread 安排在具有任何其他優(yōu)先級(jí)的線程之后。

            Normal

            可以將 Thread 安排在具有 AboveNormal 優(yōu)先級(jí)的線程之后,在具有 BelowNormal 優(yōu)先級(jí)的線程之前。 默認(rèn)情況下,線程具有 Normal 優(yōu)先級(jí)。

              · 通過線程池執(zhí)行線程

              · ThreadPool.QueueUserWorkItem 方法 (WaitCallback)

              public static bool QueueUserWorkItem(WaitCallback callBack)

              callBack

              類型:System.Threading.WaitCallback

              一個(gè) WaitCallback,表示要執(zhí)行的方法。

              返回值

              類型:System.Boolean

              如果此方法成功排隊(duì),則為 true;如果無(wú)法將該工作項(xiàng)排隊(duì),則引發(fā) NotSupportedException。

              · Unity使用多線程注意

              0. 變量都是共享的(都能指向相同的內(nèi)存地址)

              1. UnityEngine的API不能在分線程運(yùn)行

              2. UnityEngine定義的基本結(jié)構(gòu)(int,float,Struct定義的數(shù)據(jù)類型)可以在分線程計(jì)算,如 Vector3(Struct)可以 , 但Texture2d(class,根父類為Object)不可以。

              3. UnityEngine定義的基本類型的函數(shù)可以在分線程運(yùn)行

            tags:
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
            請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
            免費(fèi)領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT
            服務(wù)器為什么要用Linux?

            服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

            2023-10-14 12:34:11
            ORM解決的主要問題是什么?

            ORM(對(duì)象關(guān)系映射)解決的主要問題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

            2023-10-14 12:26:19
            Go為什么不支持三元運(yùn)算符?

            Go為什么不支持三元運(yùn)算符Go語(yǔ)言是一種以簡(jiǎn)潔和有效性為目標(biāo)的編程語(yǔ)言,因此在設(shè)計(jì)過程中,Go的設(shè)計(jì)者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

            2023-10-14 12:12:36
            IT通常說的平臺(tái)是什么意思?

            在信息技術(shù)(IT)領(lǐng)域,”平臺(tái)”這個(gè)詞有著廣泛的含義,它常常指代支持軟件應(yīng)用開發(fā)和運(yùn)行的基礎(chǔ)框架和環(huán)境。以下是對(duì)”平臺(tái)”這個(gè)概念的更深入...詳情>>

            2023-10-14 11:55:36
            什么是PowerPivot?

            什么是PowerPivotPowerPivot,全稱”PowerPivot for Excel”,是Microsoft提供的一種數(shù)據(jù)分析工具,可以作為Excel的插件使用。通過PowerPivot,...詳情>>

            2023-10-14 11:25:48