Quantcast
Channel: Metodo perpetuo
Viewing all articles
Browse latest Browse all 3

Metodo perpetuo

$
0
0

El BGW, el LV, un timer y un manual reset event. 

Un listview con tres columnas. Los eventos Load del form, Tick del timer, DoWork y ProgressChanged del backgroundworker, seteados a sus corespondientes métodos delegados del form1.

using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        ManualResetEvent mre;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            mre = new ManualResetEvent(false);

            timer1.Enabled = true;
            timer1.Interval = 10000;

            backgroundWorker1.WorkerReportsProgress = true;
            backgroundWorker1.RunWorkerAsync();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            mre.Set();
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            for (; ; mre.Reset())
            {
                mre.WaitOne();

                // hace lo suyo

                // actualiza listview
                ListViewItem lvi = new ListViewItem(DateTime.Now.ToString("HH:mm:ss"));
                lvi.SubItems.Add("...");
                lvi.SubItems.Add("+++");
                backgroundWorker1.ReportProgress(0, lvi);
            }
        }

        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            listView1.Items.Add((ListViewItem)e.UserState);
        }

    }
}


Viewing all articles
Browse latest Browse all 3

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>