`
tianyusong
  • 浏览: 3798 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

进度条 在主线程一直没有空闲的时候 无法显示 问题

阅读更多
用Swing制作一个进度条

希望做一个for循环i从1累加到10M,其中每当i为100k的整数倍的时候,进度条显示进度加一。
但是由于for循环是一直占用cpu在运行着的,所以进度条在内存中的变量值是在逐渐增加,但是界面显示并没有刷新。请问这个要怎么解决才好?

			final JProgressBar pb=new JProgressBar (JProgressBar.HORIZONTAL,0,100);
			pb.setStringPainted(true);
			JFrame j=new JFrame();
			j.setSize(300,200);
			j.add(pb);
			j.setVisible(true);
						
			int i=0;
			while(true){
				if (i%1000==0)
					if (pb.getValue()<100)
						pb.setValue(pb.getValue()+1);
					else
						pb.setValue(0);
			}
分享到:
评论

相关推荐

    win8加载进度条效果.rar

    易语言提供了多线程支持,开发者可以创建并管理多个线程,确保进度条的更新不会阻塞主线程。 3. **事件驱动编程**:当进度发生变化时,系统会触发相应的事件,进度条根据事件来更新显示。易语言的事件驱动模型可以...

    安卓开发-加载网页进度条.zip

    5. UI线程与工作线程:由于更新UI必须在主线程进行,而网络请求通常在工作线程中处理,所以需要确保正确地在主线程中更新进度条。可以使用`runOnUiThread()`或者`Handler`来处理这种情况。 6. 用户体验优化:除了...

    窗体假死现象的解决办法

    1. **长时间计算**:在主线程上执行耗时的操作,如大数据量的循环、复杂的算法计算,会使得主线程无法及时响应UI事件。 2. **数据库或网络I/O操作**:在主线程上进行数据库查询或网络请求,这些操作通常需要等待,...

    简单多线程多任务的学习

    这样,当主线程空闲时,它会执行这个更新进度条的操作。 在"12.如何实现多线程多任务?"这个文件中,可能会详细讲解如何创建线程、分解任务、使用线程池、同步线程间的通信以及如何结合进度条来提升用户体验。这些...

    MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档)

    3. `CWinApp::OnIdle`:此函数在主线程的空闲时间调用,是处理后台任务或同步线程间数据的好地方。 4. `CEvent` 和 `CSemaphore`:这些是MFC中的同步对象,用于线程间的通信和同步,防止数据竞争和死锁。 在"个人...

    MutiThreadCompressFile.7z

    在本案例中,实时更新进度条就需要子线程将压缩进度通知给主线程,以便主线程进行界面更新。 3. **负载平衡**:为了充分利用多核处理器的优势,数据应该在子线程之间合理分配,避免某些线程过载,其他线程空闲。这...

    异步任务AsyncTask

    异步任务AsyncTask是Android平台中用于在UI线程之外执行耗时操作的一种机制,它允许开发者在后台线程执行任务,并在完成后更新主线程的UI。AsyncTask的设计旨在简化那些需要与用户界面交互的短时后台操作。下面将...

    Android异步加载图片示例,内存,SD卡双缓存(优化版)

    在Android中,主线程负责UI更新,如果在主线程中进行耗时操作,如加载网络图片,会导致应用无响应,用户体验下降。因此,使用线程池进行图片加载是一种有效的解决方案。线程池可以预先创建一定数量的线程,当有任务...

    AsyncTask的示例代码

    它允许开发者在主线程之外执行耗时操作,如网络请求、数据库操作等,同时能够方便地在工作完成时更新UI,避免了直接在主线程中进行这些操作导致的ANR(应用程序无响应)错误。下面将详细讲解AsyncTask的相关知识点。...

    WPF后台线程更新UI

    在Windows Presentation Foundation(WPF)开发中,UI(用户界面)通常由主线程管理,而后台线程用于执行耗时的任务。然而,由于GUI组件不是线程安全的,直接在后台线程修改UI元素可能会导致应用程序崩溃或出现不可...

    BackgroundWorker 简单应用示例

    BackgroundWorker 是 .NET Framework 中一个非常实用的组件,主要用于在 GUI(图形用户界面)应用程序中执行耗时操作,而不会阻塞主线程,保持界面的响应性。在本示例中,我们将深入探讨BackgroundWorker的工作原理...

    WinFormInvoke_winform多线程_防卡死_

    Windows Forms应用程序默认运行在一个称为UI线程的主线程上,它负责显示和更新控件。当在UI线程上执行长时间运行的任务时,由于CPU资源被占用,UI线程无法及时响应用户的交互请求,从而导致界面卡死。 **2. 多线程...

    为对话框应用程序添加启动界面

    这可以通过修改窗口透明度或位置来实现,需要注意的是,这些效果需要在消息循环中逐步执行,确保不会阻塞主线程。 7. **测试与优化**:最后,对整个流程进行测试,确保在不同场景下都能正常运行,优化加载速度和...

    详解谷歌浏览器 performance 选项卡

    - **Main**:JavaScript 计算、CSS 样式计算、布局、光栅化等都在主线程中执行。 - **Raster**:负责将页面元素转化为位图,即光栅化处理。 - **GPU**:涉及 GPU 加速的部分,如硬件加速的渲染。 通过 ...

    取指定CPU使用.rar

    这可以通过设置定时器或者在主线程中设置适当的延迟来实现。 7. **错误处理**:在编写这样的程序时,错误处理是必不可少的,需要考虑API调用失败、权限不足等各种可能的异常情况,并提供相应的错误提示和处理机制。...

    基于Qt事件循环的异步任务管理.zip

    这样可以确保主线程(负责事件循环)不被阻塞,提高用户体验。 总结起来,"基于Qt事件循环的异步任务管理"是一个关于如何高效、安全地在Qt环境中执行异步操作的主题。通过理解和利用QAsyncTask项目,开发者可以构建...

    Qt实现文件拷贝

    使用信号和槽机制,当一个线程完成文件复制后,可以发送一个信号通知主线程,主线程再从队列中取出下一个文件交给空闲的线程处理。这样可以有效地并行处理多个文件复制任务,提高效率。 为了跟踪进度和管理错误,你...

    Java多线程下载 实例

    我们可以在主线程中循环遍历所有`Future`对象,定期检查它们的状态并更新进度条。 此外,考虑到网络状况的波动,我们可能还需要在`DownloadTask`中添加错误处理和重试机制。如果某个线程在下载过程中遇到问题,可以...

    Android Thread学习笔记

    1. **不要阻塞UI线程**:UI线程(也称为主线程)负责处理所有与用户界面相关的事件,如触摸输入、绘制屏幕等。如果在UI线程上执行耗时操作,将导致UI变得无响应,严重影响用户体验。 2. **不要从非UI线程访问...

    基于VideoView自定义控制面板的视频播放器

    在`VideoBusiness`中,可以看到一个`Handler`实例,用于在主线程中处理播放进度的更新。 综上所述,这个实例展示了如何通过封装VideoView和自定义控制面板,实现一个功能丰富的视频播放器,同时利用手势识别增强...

Global site tag (gtag.js) - Google Analytics