Merhaba Arkadaşlar,
Bu yazımda size .NET C# ortamında nasıl çoklu işlem yapılır ve nasıl işlemcinin bütün nimetlerinden faydalanılır bundan biraz bahsedeceğim. Öncelikle yeni namespace imizi ekliyoruz.
1 |
using System.Threading.Tasks; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
public async void CommandHandler(IUICommand command) { double d1 = 500000; double d2 = 500000; double d3 = 500000; if (command.Label == "Button 1") { Task t1 = Task.Factory.StartNew(() => { for(int i =0; i<50000; i++) d1 += Math.Sqrt(d1); }); Task t2 = Task.Factory.StartNew(() => { for (int i = 0; i < 50000; i++) d2 += Math.Sin(d1); }); Task t3 = Task.Factory.StartNew(() => { for (int i = 0; i < 50000; i++) d3 += Math.Log(d1); }); await t1; await t2; await t3; textBlock_1.Text = "" + d1; textBlock_2.Text = "" + d2; textBlock_3.Text = "" + d3; } } } |
Önceki yazımdan aldığım fonksiyonuma Task.Factory.StartNew ile başlıyoruz. fonksiyonumuzun içerisine çalıştrmak istediğim komutları yazıyoruz. Burada önemli olan şunu düşünebilmek: programım çalışmaya devam ederken arka planda çalışan komutlarım tamamlanmadan doğru çalışır mı ? Burada imdadımıza await yetişiyor. Bunun amacı fonksiyonumuzu arka plandaki tasklar tamamlanana kadar durdurmak. Böylece programımız doğru şekilde çalışacaktır.