Прогресс выполнения цикла - C#
Формулировка задачи:
Подскажите, вот есть цикл
Хочу сделать, чтобы при выполнении цикла, показывалось, выполнено 3 из 10 например. То есть показывать сколько прошел цикл и сколько осталось.
private void ProcessedF()
{
int j = 0;
for (int i = 0; i < 10; i++, j++)
{
System.Threading.Thread.Sleep(2000);
BeginInvoke(new MethodInvoker(() => label1.Text = j.ToString()));
}
}
private void button1_Click(object sender, EventArgs e)
{
System.Threading.Thread myThread = new System.Threading.Thread(ProcessedF);
myThread.Start();
}Решение задачи: «Прогресс выполнения цикла»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Threading.Tasks;
namespace WindowsFormsApplication7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += (delegate(object sender, EventArgs e)
{
label1.Text = string.Empty;
});
button1.Click += (delegate(object sender, EventArgs e)
{
Thread myThread = new Thread(new ThreadStart(delegate()
{
int j = 10;
for (int i = 0; i <= 10; i++)
{
Thread.Sleep(1000);
label1.Invoke((Action)delegate()
{
string myString = string.Format("Выполнено {0} из {1}",
i.ToString(), j.ToString());
label1.Text = myString;
});
}
label1.Invoke((Action)delegate() { label1.Text = "Операция завершена!"; });
}));
myThread.IsBackground = true;
myThread.Start();
});
}
}
}