Если использовать дотнет 4.5 то задача весьма тривиальная:
| Код | private async void button2_Click(object sender, EventArgs e) { Button b = sender as Button; b.Enabled = false;
for (int i = 0; i < 30; i++) { await PlayAsync(i); } b.Enabled = true; }
private Task PlayAsync(int trackNumber) { return Task.Factory.StartNew(() => { Play(trackNumber); }); }
private void Play(int trackNumber) { Console.WriteLine("Playing track {0}", trackNumber); Thread.Sleep(1000); }
|
Если фреймворк более ранний, читайте про Invoke, как тут советовали. |