Task ProgressBar Project
https://drive.google.com/open?id=0B6jghOdcFjiqZk9MQ2Z4bS1JN28
https://drive.google.com/open?id=0B6jghOdcFjiqZk9MQ2Z4bS1JN28
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestTask
{
public class ProgressReport
{
public int percenteComplete { get; set; }
}
}
--------------------------------------
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Threading; namespace TestTask { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Task ProcessData(List<string> lst, IProgress<ProgressReport> progress) { int index = 1; int totalProcess=lst.Count; var progressReport = new ProgressReport(); return Task.Run(() => { for (int i=0; i < totalProcess; i++) { progressReport.percenteComplete = (index++ * 100) / totalProcess; progress.Report(progressReport); Thread.Sleep(10); } }); } private async void btnStart_Click(object sender, EventArgs e) { List<string> lst = new List<string>(); for (int i=0; i < 1000; i++) { lst.Add(i.ToString()); } lblStatus.Text = "working..."; var progress = new Progress<ProgressReport>(); progress.ProgressChanged+=(o,report)=>{ lblStatus.Text = string.Format("Progressing....{0}%", report.percenteComplete); progressBar.Value = report.percenteComplete; progressBar.Update(); }; await ProcessData(lst, progress); lblStatus.Text = "done"; } } }
No comments:
Post a Comment