C# noob ile güncelleyin. (En önemlisi Java).Metin formunu, diğer dillerdeki deneyimlerden gelen Winforms ve C#
Şu anda this question adlı kullanıcı kodunu görüyorum.
form üzerinde bir düğme ve bir metin kutusu bırakın ve bu kodu kullanın:
private void button1_Click(object sender, EventArgs e)
{
Task.Factory.StartNew<int>(() => DelayedAdd(5, 10))
.ContinueWith(t => DelayedAdd(t.Result, 20))
.ContinueWith(t => DelayedAdd(t.Result, 30))
.ContinueWith(t => DelayedAdd(t.Result, 50))
.ContinueWith(t => textBox1.Text = t.Result.ToString(),
TaskScheduler.FromCurrentSynchronizationContext());
}
private int DelayedAdd(int a, int b)
{
Thread.Sleep(500);
return a + b;
}
düğmesine basın, dört DelayedAdd
için 2 saniye bekleyin O VS 2013 standart WinForms C# projesi var tamamlamak için çağrılar ve sonuç (115) metin kutusunda görüntülenir. Her DelayedAdd
aramasından sonra metin kutusunda görüntülenen sonucu nasıl alabilirim?
Ben, her çağrı arasında
Task.Factory.StartNew<int>(() => DelayedAdd(5, 10))
.ContinueWith(t => textBox1.Text = t.Result.ToString(),
TaskScheduler.FromCurrentSynchronizationContext())
.ContinueWith(t => DelayedAdd(t.Result, 20))
.ContinueWith(t => textBox1.Text = t.Result.ToString(),
TaskScheduler.FromCurrentSynchronizationContext())
.ContinueWith(t => DelayedAdd(t.Result, 30))
.ContinueWith(t => textBox1.Text = t.Result.ToString(),
TaskScheduler.FromCurrentSynchronizationContext())
.ContinueWith(t => DelayedAdd(t.Result, 50))
.ContinueWith(t => textBox1.Text = t.Result.ToString(),
TaskScheduler.FromCurrentSynchronizationContext());
nihai devamını kıpırdamak çalıştı ama bu eklenen continuations sayı sonucunu t
dönmek yok çünkü ben tahmin ediyorum, başarısız olur. Böyle bir C# noob değilim, 'un'u nasıl düzelteceğini bile bilmiyorum, bunu sadece deyimsel bir şekilde yapalım.
Hangi çerçeve sürümünü kullanıyorsunuz? –
Bu Yuval ile aynı soru olabilir, ancak Görev nedir? Ve EventArgs? –
Kutudan çıktı WinForms. Üzgünüm, bundan bahsetmiştim. – kdbanman