.NET 4.x Вывод в Label множества чисел в отдельном потоке - C#
Формулировка задачи:
Доброго дня., прошу на пальцах или просто самым простым примером показать-пояснить как сделать следующее:
Есть форма. на ней Label. в этот лабель надо выводить какуюто инфу. но из другого потока. Допустим поток просто перебирает все числа от 0 до 3000000 и выводит на экран в лабель числа которые делятся без остатка на какоето число.
если на лабель ничего не выводить то поток у меня выполняется и основная форма не тупит. если делать используя invoke то форма вешается а на лабель выводится только последний найденный результат.
Собсно как это все правильно реализовать.
Решение задачи: «.NET 4.x Вывод в Label множества чисел в отдельном потоке»
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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load+=new EventHandler(Form1_Load);
}
void Form1_Load(object sender, EventArgs e)
{
Thread mythr=new Thread(new ThreadStart(dosomething));
mythr.Start();
}
void dosomething()
{
int i = 0;
for (; ; )
{
if (label1.InvokeRequired)
label1.Invoke(new Action(() => label1.Text = i.ToString()));
Thread.Sleep(100);
i++;
}
}
}
}