FORTUNE

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

          SWT多線程(1)

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

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

            對于Display,在同一個線程里,不能申明2Display實例。同樣的,一個Display實例也不能跨線程使用。也就是說,如果你要在另外一個線程中顯示一個窗體,(比如你要在任務完成后彈出一個對話框),你必須另外創建一個Display實例。不然會導致異常。)
          主站蜘蛛池模板: 仲巴县| 玉屏| 和政县| 长兴县| 清徐县| 清原| 建昌县| 西贡区| 苏尼特右旗| 磐石市| 金湖县| 瑞昌市| 浙江省| 资兴市| 武胜县| 灵川县| 泰安市| 珲春市| 黑山县| 杂多县| 溆浦县| 宁波市| 墨竹工卡县| 九江县| 安新县| 宁远县| 阳原县| 沅陵县| 平陆县| 略阳县| 松溪县| 上林县| 杂多县| 塔河县| 弋阳县| 阳朔县| 三穗县| 亚东县| 凤庆县| 若尔盖县| 玉门市|