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

首頁 > 編程 > .NET > 正文

.NET中STAThread的使用詳解

2024-07-10 12:45:38
字體:
來源:轉載
供稿:網友

在WindowForm應用程序中主要的線程,是采用一種稱為「Single-Threaded Apartment(STA)」的線程模型。這個STA線程模型,在線程內加入了訊息幫浦等等機制,減少開發人員撰寫窗口程序的工作量。
 

而在開發類別庫的時候,如果要使用類似的STA線程模型,可以使用下列的程序代碼提供的類別來完成。
代碼如下:
namespace CLK.Threading
{
    public class STAThread
    {
        // Enum
        private enum ThreadState
        {
            Started,
            Stopping,
            Stopped,
        }

 
        // Fields
        private readonly object _syncRoot = new object();

        private readonly BlockingQueue<Action> _actionQueue = null;

        private Thread _thread = null;

        private ManualResetEvent _threadEvent = null;

        private ThreadState _threadState = ThreadState.Stopped;     

 
        // Constructor
        public STAThread()
        {
            // ActionQueue
            _actionQueue = new BlockingQueue<Action>();

            // ThreadEvent
            _threadEvent = new ManualResetEvent(true);

            // ThreadState
            _threadState = ThreadState.Stopped;     
        }

 
        // Methods
        public void Start()
        {          
            // Sync
            lock (_syncRoot)
            {
                // ThreadState
                if (_threadState != ThreadState.Stopped) throw new InvalidOperationException();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大安市| 门头沟区| 浦北县| 彰化县| 泰顺县| 密山市| 蓝田县| 保定市| 洪江市| 竹溪县| 勐海县| 沙坪坝区| 华池县| 巍山| 南江县| 蓬安县| 峡江县| 朝阳县| 开阳县| 玛纳斯县| 濮阳县| 尉犁县| 夏邑县| 莱州市| 阿瓦提县| 旌德县| 宾阳县| 延安市| 麻栗坡县| 长春市| 五寨县| 阳原县| 睢宁县| 芮城县| 纳雍县| 灵寿县| 延寿县| 东至县| 邮箱| 黔江区| 凌云县|