FORTUNE

          THE WAY TO THE MASTER...
          posts - 49, comments - 18, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          SWT多線程(1)

          Posted on 2006-02-22 09:10 fortune 閱讀(1012) 評論(0)  編輯  收藏 所屬分類: 我的學(xué)習(xí)筆記

          在SWT中,通常存在一個被稱為"用戶線程"的唯一線程,只有在這個線程中才能調(diào)用對構(gòu)件或某些圖形API的訪問操作。如果在非用戶線程中程序直接調(diào)用這些訪問操作,那么SWTExcepiton異常會被拋出(if (display.thread != Thread.currentThread ()) error (SWT.ERROR_THREAD_INVALID_ACCESS);)每一個在非用戶線程中出現(xiàn)的widget都要通過檢驗看display.thread 是否等于Thread.currentThread()如果不相等就要拋出非法訪問線程異常。但是SWT也在*.widget.Display類中提供了兩個方法可以間接的在非用戶線程的進(jìn)行圖形構(gòu)件的訪問操作,這是通過的syncExec(Runnable)和asyncExec(Runnable)這兩個方法去實現(xiàn)的。

            對于Display,在同一個線程里,不能申明2Display實例。同樣的,一個Display實例也不能跨線程使用。也就是說,如果你要在另外一個線程中顯示一個窗體,(比如你要在任務(wù)完成后彈出一個對話框),你必須另外創(chuàng)建一個Display實例。不然會導(dǎo)致異常。)
          主站蜘蛛池模板: 石台县| 涡阳县| 六枝特区| 德清县| 苍梧县| 利川市| 平湖市| 梓潼县| 青州市| 阿拉尔市| 华池县| 新建县| 罗甸县| 临颍县| 太谷县| 北流市| 林周县| 博湖县| 永登县| 绩溪县| 湖北省| 尼木县| 阳朔县| 织金县| 阳新县| 宁都县| 永年县| 德令哈市| 英吉沙县| 石嘴山市| 祥云县| 吉安市| 古田县| 甘孜| 郸城县| 阳曲县| 通江县| 涿州市| 新宁县| 五家渠市| 长岛县|