Zdravím tady je kód jednoduché aplikace, která naplní asynchroně list view čtyřmi náhodnými čísly. Snad se poperete s C# :).
public partial class Form1 : Form
{
private readonly Random _random = new Random();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// spustí metodu (FillListView) v novém vlákně
ThreadPool.QueueUserWorkItem(state => FillListView());
}
private void FillListView()
{
Thread.Sleep(2000); // ať jde vidět, že se to děje skutečně asynchroně
// vygeneruj nějaká data
var data = new[]
{
_random.Next(0, int.MaxValue).ToString(),
_random.Next(0, int.MaxValue).ToString(),
_random.Next(0, int.MaxValue).ToString(),
_random.Next(0, int.MaxValue).ToString()
};
// vytvoření anonymní metody, která manipuluje s UI control (plní list view daty)
Action uiAction =
() =>
{
listView1.Items.Clear();
foreach (var datum in data)
{
listView1.Items.Add(datum);
}
};
// spustí metodu (uiAction) ve vlákně, jež control vytvořilo
listView1.Invoke(uiAction);
}
}
R.
|