国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#[ STAThread]

2019-11-08 03:10:03
字體:
來源:轉載
供稿:網友
每個Thread都有一個關于ApartmentState的屬性,可以把它設置為:STA或者MTA,或者UNKNOWN。當你想指定工程的啟動窗口的時候,你需要在該窗口類中申明一個Main()方法,并為這個方法設置[STAThread]屬性。

[STAThread]是Single  Thread  Apartment單線程套間的意思,是一種線程模型,用在程序的入口方法上(在C#和VB.NET里是Main()方法),來指定當前線程的ApartmentState 是STA。用在其他方法上不產生影響。在aspx頁面上可以使用AspCompat = "true" 來達到同樣的效果。這個屬性只在  Com  Interop  有用,如果全部是  managed  code  則無用。簡單的說法:[STAThread]指示應用程序的默認線程模型是單線程單元 (STA)。啟動線程模型可設置為單線程單元或多線程單元。如果未對其進行設置,則該線程不被初始化。也就是說如果你用的.NET Framework,并且沒有使用COM Interop,一般不需要這個Attribute。其它的還有MTA(多線程套間)、Free  Thread(自由線程)。單線程套間,簡單來說所有對于單線程套間中對象的訪問都是通過消息來傳遞的,所以同一時間只有一個線程能夠訪問單線程套間中的對象。例如:class MainClass    {        [STAThread]        static void Main(string[] args)        {            Teacher teacher = new Teacher();            Student student = new Student();            student.AdviseDelegateInstance = new Student.AdviseDelegate(teacher.Advise);            Console.WriteLine("Student got 49");            student.SetScore(49);            Console.WriteLine("Student got 87");            student.SetScore(87);            Console.ReadLine();        }    }表示這個Main程序被一個單線程套間包住,且Main的執行,一次只能被一個線程占用,這個線程未執行完,別的線程是沒辦法調用的。

分類: C#
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马山县| 吐鲁番市| 凤冈县| 武定县| 威海市| 克拉玛依市| 马尔康县| 乐安县| 灌阳县| 仙游县| 南丰县| 石楼县| 凌源市| 永登县| 昭苏县| 建始县| 祁门县| 吐鲁番市| 广宁县| 克山县| 壤塘县| 涟水县| 杂多县| 如东县| 明溪县| 德兴市| 泰来县| 英吉沙县| 资兴市| 哈密市| 荆州市| 桂平市| 涟源市| 巨野县| 沾化县| 肃宁县| 乐至县| 扶风县| 常山县| 铅山县| 长兴县|