🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / task kullanımı

1-) C# RMOS - task kullanımı

 

1.1-) ÖZELLİKLER

 

                List<Task> tasks = new List<Task>();

   tasks.Add(Task.Run(() => sadeceKontenjanGuncelle(Bas_Tar, Bit_Tar, Acentex_Konum, Kalan)));

 

                    await Task.WhenAll(tasks);

 

çakışmaması için

 gridControlTarih.Invoke((MethodInvoker)delegate

 {

     gridControlTarih.DataSource = erkenTarihModels;

 });

 

DİĞER

 System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;

 System.Threading.Tasks.Task.Factory.StartNew(() =>{// do something});

  var task1 = Task.Factory.StartNew(() => cimriCekAsync());

 await Task.WhenAll(task1);

 this.Invoke(new MethodInvoker(async () =>{ }));

 

 1.2-) YENİ C# MASAÜSTÜ TASK KULLANIMI

 

 

 private async void btnCimriAkakceCek_ClickAsync(object sender, EventArgs e)

        {

            loadingAc();

            var task1 = Task.Factory.StartNew(() => cimriCekAsync());

            await Task.WhenAll(task1);

            loadingKapat();

        }

 

        public async Task cimriCekAsync()

        {

 

            this.Invoke(new MethodInvoker(async () =>

            {

                CimriApi api = null;

 

                for (int i = 0; i < gridView1.DataRowCount; i++)

                {

                    int proxySayac = i % proxyLists.Count;

                    api = new CimriApi(proxyLists[proxySayac].proxyHost, proxyLists[proxySayac].proxyPort);

                    try

                    {

                        loadingAc();

                        SplashScreenManager.Default.SetWaitFormDescription(i + "/" + gridView1.DataRowCount + "\nYükleniyor...");

                       

                        }

                    }

                    catch (Exception ex)

                    {

 

                    }

                    if (!txtSaniye.Text.Equals("0"))

                    {

                       await Task.Delay(Convert.ToInt32(txtSaniye.Text)*1000);

                    }

 

                }

            }));

 

        }

 

public void loadingAc()

        {

            SplashScreenManager.ShowForm(this, typeof(WaitForm1), true, true, false);

        }

 

        public void loadingKapat()

        {

            SplashScreenManager.CloseForm(false);

        }

 

 

 

 

 

2-) task kullanımı burada 4 saniye program kilitlenmeden işlemini yapar

 

private async System.Threading.Tasks.Task KapatAsync()

        {

            await System.Threading.Tasks.Task.Delay(4000);

            labelUyari.Visible = false;

        }

 

 3-) APİ DE TASK KULLANIMI

 

using AracOtoApi.Controllers.Fugo;

using AracOtoApi.Models;

using System.Collections.Generic;

using System.Threading.Tasks;

using System.Web.Http;

using System.Web.Http.Description;

 

namespace AracOtoApi.Controllers.TumKatolog

{

    public class TumKatalogController : ApiController

    {

 

List<AracGenelResModel> aracGenelResModels = new List<AracGenelResModel>();

 

 

        [Route("api/TumKatalog/getTumKatalog")]

        public async Task<object> getTumKatalog(string kod)

        {

            var task1 = Task.Factory.StartNew(() => getFugoAracModel(kod));

            var task2 = Task.Factory.StartNew(() => getFourceAracModel(kod));

            var task3 = Task.Factory.StartNew(() => getStarShopAracModel(kod));

 

            await Task.WhenAll(task1, task2, task3);

 

            

            return aracGenelResModels;

        }

 

        

 

       [ApiExplorerSettings(IgnoreApi = true)]

        public async Task<List<AracGenelResModel>> getFugoAracModel(string kod)

        {

            List<AracGenelResModel> models = new List<AracGenelResModel>();

            string userName = "aa";

            string password = "aa!";

            string url = ""; string katalogid = "";

 

            FugoGenelController genelController = new FugoGenelController();

            //models = genelController.Cek(kod, userName, password, url, katalogid);

            List<AracGenelResModel> fugoList = (List<AracGenelResModel>)genelController.Cek(kod, userName, password, url, katalogid);

 

            

            aracGenelResModels.AddRange(fugoList);

 

            return fugoList;

        }

 

 

        [ApiExplorerSettings(IgnoreApi = true)]

        public async Task<List<AracGenelResModel>> getFourceAracModel(string kod)

        {

            List<AracGenelResModel> models = new List<AracGenelResModel>();

            string userName = "cc";

            string password = "cc";

            string url = ""; string katalogid = "";

 

            FourceGenelController genelController = new FourceGenelController();

            List<AracGenelResModel> fourceList = (List<AracGenelResModel>)genelController.cek(kod, userName, password, url, katalogid);

 

            aracGenelResModels.AddRange(fourceList);

            return fourceList;

        }

 

 

 

        [ApiExplorerSettings(IgnoreApi = true)]

        public async Task<List<AracGenelResModel>> getStarShopAracModel(string kod)

        {

            List<AracGenelResModel> models = new List<AracGenelResModel>();

 

 

            GenelController genelController = new GenelController();

            models = genelController.Cek(kod, "cc", "cc", "", "");

 

            aracGenelResModels.AddRange(models);

 

            return models;

        }

    }

}

 2024 Nisan 24 Çarşamba
 1,130