• 静思
  • 吴言片语
    • 吴言
    • 片语
    • 杂七杂八
  • 死于青春
    • 一路走好
  • 乌合麒麟
  • 纪念
    • 5.12
    • 3.23
  • GitHub
    • A List of Post-mortems
    • The Art of Command Line
  • 关于
    • Privacy Policy

程序员的信仰

金鳞岂是池中物,一遇风云便化龙

HOME » 技术生活 » 如何cancel一个swingworker

如何cancel一个swingworker

2008 年 10 月 30 日 @ 下午 4:04 by Jay | 被踩了 5,015 脚

最近在项目里一直在用jdesktop的swingworker(已经合入JDK 6),是个不错的swing线程库。今天需要在界面里cancel一个swingworker。研究了一下午,结合swingworker的文档、源代码和自己的代码实验,以下是两种安全cancel一个swingworker的方法

方法一,使用isCancelled:

protected Object doInBackground() throws Exception {
    while (!isCancelled()) {
       ...
    }

    return null;
}

需要cencel时调用swingworker.cancel(false),不中断线程,只置cancel标记。

方法二,使用sleep:

protected Object doInBackground() throws Exception {
    while (running) {
        ...
        sleep(30);
    }

    return null;
}

需要cencel时调用swingworker.cancel(true),在sleep处中断线程。切记,不需要捕捉sleep抛出的InterruptedException,swingworker会处理该异常。


-- EOF --

除非注明(如“转载”、“[zz]”等),本博文章皆为原创内容,转载时请注明: 「转载自程序员的信仰©」
本文链接地址:如何cancel一个swingworker

分享

  • 点击分享到 Facebook (在新窗口中打开) Facebook
  • 点击以分享到 X(在新窗口中打开) X
  • 更多
  • 点击分享到Reddit(在新窗口中打开) Reddit
  • 点击分享到Telegram(在新窗口中打开) Telegram
  • 点击以在 Mastodon 上共享(在新窗口中打开) Mastodon

赞过:

赞 正在加载……

相关

Today on history:

【2009】北航你已经被评为退步最快的10所大学了,你要是再不重视本科生你就完了 [zz]
Posted in: 技术生活 Tagged: java, swingx, tips
← 奔三了
Amazing Grace,奇异恩典 →

android (9) apple (20) augmentum (9) Beijing (21) bt (8) career (28) coding (38) firefox (10) google (36) hibernate (11) ibm (11) iphone (10) java (93) linux (16) m$ (26) mac (58) macos (27) nazca (9) olympics (8) oo (8) playstation (10) rip (8) Shanghai (39) spring (9) tips (45) tommy emmanuel (8) ubuntu (12) usa (23) windows (9) 北航 (17) 博客 (29) 吐槽 (8) 周末 (9) 和谐社会 (26) 小资 (11) 愤青 (40) 方言 (10) 朋友 (77) 歌词 (8) 烟酒不分家 (18) 爱国 (19) 爱情 (8) 犯二 (15) 破解 (8) 足球 (11)

烫手山芋

  • 再谈苹果的输入法:这一次是靠OS X自带的输入法来翻身的~ - 被踩了 27,349 脚
  • 生活,就是一个期待跟着一个期待 - 被踩了 21,357 脚
  • 星巴克饮品缩写大全(Starbucks Drink ID Codes)[zz] - 被踩了 18,407 脚
  • 从一个全角冒号说一下我为什么不感冒iOS - 被踩了 14,316 脚
  • 有关Character.isLetter()和Character.isLetterOrDigit() - 被踩了 13,590 脚

刚拍的砖

  • leo 发表在《再谈苹果的输入法:这一次是靠OS X自带的输入法来翻身的~》
  • 花 发表在《再谈苹果的输入法:这一次是靠OS X自带的输入法来翻身的~》
  • 无名氏 发表在《从一个全角冒号说一下我为什么不感冒iOS》
  • Jay 发表在《Mac OS geek级问题》
  • Wei Wang 发表在《再谈苹果的输入法:这一次是靠OS X自带的输入法来翻身的~》

随便看看

  • 帮朋友打广告一则9 年 ago
  • Female – Keith Urban3 年 ago
  • 2010上海世博会“人”字形概念楼3 年 ago
  • Meet god father9 年 ago
  • 让Struts 2性能提升一个数量级的的5个步骤 [zz]9 年 ago

文以类聚

光阴似箭

其他操作

  • 登录
  • 条目 feed
  • 评论 feed
  • WordPress.org

Copyright © 2025 程序员的信仰.

Jay's Omega WordPress Theme by Jay

 

正在加载评论...
 

    %d