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

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

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

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2007年11月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(lèi)(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    限時(shí)線程回調(diào)方式的實(shí)現(xiàn)

    線程回調(diào)方式我們已經(jīng)在"使用回調(diào)和線程處理一個(gè)耗時(shí)響應(yīng)過(guò)程"文中進(jìn)行了講述,但是有些情況下用戶希望在指定時(shí)間內(nèi)返回一個(gè)結(jié)果,免得無(wú)休止的等待下去.這時(shí)我們需要使用"限時(shí)線程回調(diào)方式",它在原有線程回調(diào)的基礎(chǔ)上加上了一個(gè)Timer以計(jì)算消耗的時(shí)間,如果時(shí)間期限到了任務(wù)還沒(méi)有執(zhí)行完的話即中斷線程,示例代碼如下:

    package com.sitinspring;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.Timer;

    /**
     * 定時(shí)回調(diào)線程類(lèi)
     * 
     * 
    @author sitinspring(junglesong@gmail.com)
     * 
     * @date 2007-11-6
     
    */

    public class TimedCallBackThread implements Runnable {
        
    // 一秒的毫秒數(shù)常量
        private final static int ONE_SECOND = 1000;

        
    // 限制時(shí)間,以秒為單位
        private final int waitTime;

        
    // 已經(jīng)流逝的時(shí)間
        private int passedTime;

        
    private Timer timer;

        
    private Thread thread;

        
    private MvcTcModel model;

        
    private MvcTcView view;

        
    public TimedCallBackThread(MvcTcModel model, MvcTcView view, int waitTime) {
            
    this.model = model;
            
    this.view = view;
            
    this.waitTime = waitTime;
            
    this.passedTime = 0;

            
    // 創(chuàng)建并啟動(dòng)定時(shí)器
            timer = new Timer(ONE_SECOND, new ActionListener() {
                
    public void actionPerformed(ActionEvent evt) {
                    timeListener();
                }

            }
    );
            timer.start();

            
    // 創(chuàng)建并啟動(dòng)線程來(lái)完成任務(wù)
            thread = new Thread(this);
            thread.start();
        }


        
    private void timeListener() {
            passedTime
    ++;

            
    // 動(dòng)態(tài)顯示狀態(tài)
            int modSeed = passedTime % 3;
            
    if (modSeed == 0{
                view.getLabel2().setText(
    "響應(yīng)中");
            }
     else if (modSeed == 1{
                view.getLabel2().setText(
    "響應(yīng)中..");
            }
     else if (modSeed == 2{
                view.getLabel2().setText(
    "響應(yīng)中.");
            }


            
    // 如果流逝時(shí)間大于規(guī)定時(shí)間則中斷線程
            if (passedTime > waitTime) {
                passedTime 
    = waitTime;
                thread.interrupt();
            }

        }


        
    public void run() {
            
    while (passedTime < waitTime) {
                
    try {
                    Thread.sleep(
    10000);// 模擬一個(gè)耗時(shí)相應(yīng)過(guò)程
                    timer.stop();// 任務(wù)完成,停止Timer

                    view.getLabel2().setText(model.getText2());
                }
     catch (InterruptedException ex) {
                    timer.stop();
    // 線程中斷,停止Timer
                    view.getLabel2().setText("在指定時(shí)間內(nèi)未響應(yīng)");
                }
     catch (Exception ex) {
                    ex.printStackTrace();
                }


                
    return;
            }

        }

    }

    執(zhí)行效果如下:





    本文代碼下載(點(diǎn)擊第二個(gè)按鈕):
    http://www.tkk7.com/Files/sitinspring/TimedThreadCallBack20071106194506.rar

    posted on 2007-11-06 12:05 sitinspring 閱讀(1142) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 線程Thread


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    sitinspring(http://www.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 在线观看亚洲精品福利片| 美女内射无套日韩免费播放| 色综合久久精品亚洲国产| 亚洲综合精品伊人久久| 亚洲中文字幕无码av永久| 一本色道久久综合亚洲精品蜜桃冫| 亚洲高清日韩精品第一区| 亚洲综合色一区二区三区小说| 久久久久亚洲精品成人网小说| 亚洲小视频在线观看| 亚洲一区二区三区四区在线观看| 久久精品九九亚洲精品| 91久久亚洲国产成人精品性色| 中文字幕亚洲综合久久| 亚洲精品美女久久久久| 亚洲国产成人精品无码一区二区| 亚洲三级在线播放| 久久亚洲精品国产亚洲老地址 | 国产精彩免费视频| 亚洲大片免费观看| 皇色在线视频免费网站| 毛片免费视频观看| 日韩电影免费在线| 亚洲精品A在线观看| 自拍偷自拍亚洲精品情侣| 精品久久久久久亚洲| 亚洲视频在线视频| 亚洲免费闲人蜜桃| 亚洲国产精品成人午夜在线观看| 青草青草视频2免费观看| 黄桃AV无码免费一区二区三区| 免费在线观看一级片| 91精品成人免费国产片| 日本一区二区三区日本免费| 亚洲国产高清精品线久久| 亚洲熟妇中文字幕五十中出| 亚洲一区二区影院| 亚洲av中文无码乱人伦在线观看| 青青青视频免费观看| 色欲色香天天天综合网站免费 | 亚洲国产精品无码观看久久|