Pro nejjednodussi pochopeni je dobrej tenhle priklad, je to ten nejjednodussi bezpecnej zpusob:
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 WindowsFormsApplication2
{
public partial class Form1 : Form
{
private const int s = 12;
Thread mujThread = null;
delegate void mujDelegat(string text);//delegat pro pristup k textboxu
delegate void mujDelegatListBox(string[] text);//pro pristup k listboxu
public void startFce()//jenom spousteci fce, musi byt bezparametricka, nesmi byt static
{
this.vykonnaFce("Nastaveno");//musi byt volana dalsi fce, aby mohl byt predan
//spousteci parametr
}
public Form1()
{
InitializeComponent();
}
private void vykonnaFce(string text)//tato fce uz opravdu neco dela
{
if (this.textBox1.InvokeRequired)//pokud je volano z jineho threadu
//zabezpeci bezpecny pristup ke komponente,
//dale bude vykonan blok else
{
mujDelegat d = new mujDelegat(vykonnaFce);//vlakno si vytvori vlastniho delegata
this.Invoke(d, new object[] { text });
}
else//sem se pise kod, CO SE MA UDELAT !!!!!!!
{
this.textBox1.Text = text;
}
}
private void startFceListBox()//pocatecni fce pro listbox
{
string[] pole = new string[] {"1","2"};
this.vykonnaFceListBox(pole);
}
private void vykonnaFceListBox(string [] text)//vykonna fce pro listbox
{
if (this.pridejListBoxButton.InvokeRequired)//zabezpeci bezpecny pristup k listboxu
{
string[] pole = text ;
mujDelegatListBox d = new mujDelegatListBox(this.vykonnaFceListBox);
this.Invoke(d, new object[] { pole });
}
else//sem opet kod, co se ma vykonat
{
foreach (string i in text)
this.listBox1.Items.Add(i);
}
}
private void nastavTextBoxButton_Click(object sender, EventArgs e)
{
this.mujThread = new Thread(new ThreadStart(this.startFce));
this.mujThread.Start();
}
private void pridejListBoxButton_Click(object sender, EventArgs e)
{
this.mujThread = new Thread(new ThreadStart(startFceListBox));
this.mujThread.Start();
}
}
}
Příspěvky odeslané z IP adresy 160.216.156.–
mrsami