`
csstome
  • 浏览: 1521687 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

c#中子线程控制进度条的一个简单例子

阅读更多

这个问题来自社区提问,代码保留一份用来以后回答

using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace WindowsApplication4
... {
/**/ /// <summary>
/// gui类
/// </summary>

public partial class Form1:Form
... {
public Form1()
... {
InitializeComponent();
}

private void button1_Click( object sender,EventArgse)
... {
// 用子线程工作
new System.Threading.Thread( new System.Threading.ThreadStart(StartDownload)).Start();
}

// 开始下载
public void StartDownload()
... {
Downloaderdownloader
= new Downloader();
downloader.onDownLoadProgress
+= new Downloader.dDownloadProgress(downloader_onDownLoadProgress);
downloader.Start();
}

// 同步更新ui
void downloader_onDownLoadProgress( long total, long current)
... {
if ( this .InvokeRequired)
... {
this .Invoke( new Downloader.dDownloadProgress(downloader_onDownLoadProgress), new object [] ... {total,current} );
}

else
... {
this .progressBar1.Maximum = ( int )total;
this .progressBar1.Value = ( int )current;
}

}

}


/**/ /// <summary>
/// 下载类
/// </summary>

public class Downloader
... {
// 委托
public delegate void dDownloadProgress( long total, long current);
// 事件
public event dDownloadProgressonDownLoadProgress;
// 开始模拟工作
public void Start()
... {
for ( int i = 0 ;i < 100 ;i ++ )
... {
if (onDownLoadProgress != null )
onDownLoadProgress(
100 ,i);
System.Threading.Thread.Sleep(
100 );
}

}

}

}
分享到:
评论

相关推荐

    C#多线程进度条实例

    在这个实例中,“C#多线程进度条”是针对多线程环境下如何实现一个可视化进度条进行展示的一个经典案例。这个实例不仅涉及到多线程的创建和管理,还涵盖了用户界面的同步更新,确保在执行长时间任务时能够给用户提供...

    c#中如何控制模态子窗体中的进度条

    在C#编程中,控制模态子窗体中的进度条是一项常见的需求,特别是在进行耗时操作时,为了提供用户友好的界面,我们需要显示一个带有进度条的子窗口,让用户了解后台任务的执行进度。然而,由于模态窗体(Modal Form)...

    c# 多线程 异步进度条

    - 在`ProgressWindow`中,通常会有一个后台线程负责执行任务,同时主线程接收并更新进度条信息。 总结起来,"c# 多线程 异步进度条"涉及如何在C#中利用多线程执行任务,同时通过异步机制和进度条组件,向用户展示...

    C#多线程实现进度条操作

    在C#中实现多线程例子时,经常会遇到一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示。在运行中,也会时时去刷新界面上的...

    简单C#winform多线程委托调用进度条

    在C# WinForm应用开发中,多线程和进度条的使用是常见的需求,尤其是在执行耗时操作如文件上传、下载或大数据处理时,为了不阻塞用户界面(UI),我们通常会创建一个后台线程来执行这些任务,同时通过进度条实时反馈...

    C#实现多线程与进度条

    以下是一个简单的示例,展示了如何使用`BackgroundWorker`实现带进度条的多线程任务: ```csharp public partial class MainForm : Form { public MainForm() { InitializeComponent(); backgroundWorker....

    Winform(C#)委托+进度条赋值+线程安全(全新)

    1. **委托(Delegate)**: 委托在C#中是一种类型,它代表一个方法的引用。它可以像处理其他类型一样被传递给方法,也可以作为方法的返回值。在Winform中,委托经常用于事件处理,使代码能够异步执行。例如,当启动一...

    C#利用单线程做进度条

    例如,我们创建一个名为`ProgressChanged`的事件,由后台线程触发,UI线程订阅这个事件以更新进度条。 ```csharp public delegate void ProgressChangedEventHandler(int progress); public event ...

    c#多线程进度条参考资料WEb

    我们将围绕一个示例代码展开讨论,该代码旨在展示如何在一个Windows Forms应用程序中通过多线程更新进度条,并且同步显示当前的进度。 ### 一、理解委托和事件在多线程中的作用 #### 1.1 定义委托 在C#中,委托是...

    c# 多线程 委托 进度条示例

    在“ShowProgress”示例中,可能包含了一个在后台线程执行任务并使用委托和进度条更新UI的完整代码。以下是一个简单的示例流程: 1. 创建一个后台线程执行耗时任务,例如下载文件: ```csharp Thread ...

    c#关于线程的一个应用(进度条)

    本文将深入探讨如何在C#中利用线程实现一个进度条功能,以及涉及的相关知识点。 首先,我们要理解多线程的概念。多线程是指在一个应用程序中同时执行两个或更多的独立线程。在C#中,可以使用`System.Threading`命名...

    C#多线程进度条设计

    C#多线程进度条设计 仅供学习参考不用于商业

    C# 多线程 进度条示例

    在“C# 多线程 进度条示例”中,我们关注的是如何在多线程环境中创建并管理一个进度条,以便用户能够直观地看到后台任务的执行进度。这涉及到以下关键知识点: 1. **线程**: C#中的`System.Threading`命名空间提供...

    C#进度条应用(避免假死状况)

    最后一个文件"进度条应用"可能是项目的主要代码文件,可能包含了实现动态进度条更新的类或函数。 在分析这个代码时,我们可以关注以下几点: 1. 如何创建和更新进度条对象,例如`ProgressBar`控件。 2. 使用何种...

    最新9个C# .NET Winform的多线程进度条源码【完整】

    每个例子都提供了一个实际的上下文,帮助开发者理解如何在实践中应用多线程和进度条。 5. **文件切分和组合**:这可能是关于大文件处理的示例,演示如何在多线程环境中分割文件以便并行处理,然后将结果合并。这种...

    C#多线程之如何弹出一个模式窗口来显示进度条

    在本教程中,我们将探讨如何在C#中利用多线程技术来弹出一个模态窗口,展示进度条以提供用户友好的体验。 首先,理解"多线程"的概念是至关重要的。线程是程序的执行流,每个线程都有自己的执行上下文。在单线程应用...

    c#多线程中子线程动态改变ui控件

    特别是在C#多线程编程中,子线程更新UI控件是一个常见的问题。本文将总结C#子线程更新UI控件的方法,介绍两种常用的方法,以便读者更好地理解和应用。 一、使用控件自身的Invoke/BeginInvoke方法 Control类实现了...

    一个用C#编写的圆形进度条

    今天我们要探讨的是如何使用C#编程语言来创建一个圆形进度条,这是一种常见的UI元素,常用于展示任务完成度或者加载状态。 C#是一种面向对象的编程语言,它具有丰富的类库和强大的Windows Forms框架,能够帮助...

    简单C#winform多线程委托调用进度条!

    总之,这个实例为初学者提供了一个基础的C# WinForm多线程进度条的实现,通过委托和`BeginInvoke`,实现了非UI线程与UI线程间的安全通信,从而在后台执行任务的同时,能够实时更新用户界面的进度反馈。理解和掌握...

    c# 多种美丽的进度条 progressbar 多种特效 包你喜欢 源码

    在C#编程中,ProgressBar控件是用户界面(UI)设计中的一个重要元素,它用于向用户提供操作进度的可视化反馈。本资源包含多种不同样式和特效的进度条实现,旨在为你的应用增添美观与互动性。以下是对这些进度条效果...

Global site tag (gtag.js) - Google Analytics