.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++;
            }
        }
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы