<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    FORTUNE

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

    SWT多線程問題

    Posted on 2006-02-21 17:01 fortune 閱讀(1084) 評論(0)  編輯  收藏 所屬分類: java技術
    多線程問題:SWT使用Display類來維護GUI及其使用的系統資源。它禁止用戶在其他線程下訪問GUI資源。例如:

    public void run() {
            butt.setText("test");
        }
    這樣的寫法會導致非法線程異常。如果需要在其他線程下訪問GUI資源可以使用如下方法:
    Display.getCurrent().asyncExec(new Thread () {
        public void run() {
               butt.setText("test");
        }
    })

    •          Display提供同步異步方法分別是: syncExec(Runnable)asyncExec(Runnable)
    •          對于Display,在同一個線程里,不能申明2Display實例。同樣的,一個Display實例也不能跨線程使用。也就是說,如果你要在另外一個線程中顯示一個窗體,你必須另外創建一個Display實例。不然會導致異常。)

    線程問題

      在任何操作平臺的GUI系統中,對構件或一些圖形API的訪問操作都要被嚴格同步并串行化。例如,在一個圖形界面中的按鍵構件可被設成可用狀態(enable)或禁用狀態(disable),正常的處理方式是,用戶對按鍵狀態設置操作都要被放入到GUI系統的事件處理隊列中(這意味著訪問操作被串行化),然后依次處理(這意味著訪問操作被同步)。想象當按鍵可用狀態的設置函數還沒有執行結束的時候,程序就希望再設置該按鍵為禁用狀態,勢必會引起沖突。實際上,這種操作在任何GUI系統都會觸發異常。

      Java語言本身就提供了多線程機制,這種機制對GUI編程來說是不利的,它不能保證圖形構件操作的同步與串行化。SWT采用了一種簡單而直接的方式去適應本地GUI系統對線程的要求:在SWT中,通常存在一個被稱為"用戶線程"的唯一線程,只有在這個線程中才能調用對構件或某些圖形API的訪問操作。如果在非用戶線程中程序直接調用這些訪問操作,那么SWTExcepiton異常會被拋出。但是SWT也在*.widget.Display類中提供了兩個方法可以間接的在非用戶線程的進行圖形構件的訪問操作,這是通過的syncExec(Runnable)和asyncExec(Runnable)這兩個方法去實現的。例如:

    //此時程序運行在一個非用戶線程中,并且希望在構件panel上加入一個按鍵。

    Display.getCurrent().asyncExec(new Runnable() {
     public void run() {
      Button butt = new Button(panel,SWT.PUSH);
      butt.setText("Push");
     }
    });

      方法syncExec()和asyncExec()的區別在于前者要在指定的線程執行結束后才返回,而后者則無論指定的線程是否執行都會立即返回到當前線程。

    主站蜘蛛池模板: 亚洲成Av人片乱码色午夜| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久精品亚洲日本佐佐木明希| 四虎精品亚洲一区二区三区| 亚洲伊人久久大香线蕉AV| 免费无码黄十八禁网站在线观看| 男男AV纯肉无码免费播放无码| 四虎在线视频免费观看| 亚洲资源最新版在线观看| 99热在线精品免费全部my| 国产精品亚洲片夜色在线| 无码一区二区三区免费视频| 麻豆亚洲av熟女国产一区二| 91久久精品国产免费一区| 亚洲精品网站在线观看你懂的| 国产成人 亚洲欧洲| 成人午夜大片免费7777| 国产亚洲视频在线| 亚洲国产精品毛片av不卡在线| 亚洲国产日韩女人aaaaaa毛片在线 | 24小时在线免费视频| 亚洲第一香蕉视频| 大香人蕉免费视频75| 美景之屋4在线未删减免费| 成人亚洲性情网站WWW在线观看| 亚洲精品资源在线| 男男AV纯肉无码免费播放无码| 亚洲AV无码国产精品色午友在线| 亚洲s码欧洲m码吹潮| 国产一区二区三区免费看| 国产日韩精品无码区免费专区国产| 在线永久免费观看黄网站| 一级毛片免费视频网站| 亚洲成av人片在线观看无码不卡| 亚洲av纯肉无码精品动漫| 亚洲第一页日韩专区| 一级毛片免费观看不卡视频| 亚洲а∨精品天堂在线| 亚洲AV综合色区无码一区爱AV| 午夜在线免费视频 | 免费看无码特级毛片|