Open
async-await ile Asenkron Programlama

async/await ile Asenkron Programlama

“async” anahtar kelimesi, kullanıldığı metod içerisinde “await” anahtar kelimesinin etkinleştirilmesi için kullanılır.
Async kullanılan metodlar tıpkı diğer metodlar gibi çalıştırılır. Her hangi bir farkı yoktur. Ta ki derleyici “await” ile karşılaşana kadar işlemler senkron olarak işletilir. İşlemler Thread pool içerisinde bir thread ile yürütülür.
.   


          public async static Task <string> Downloadstring (string url)
          {
          WebClient webClient = new WebClient();
          var download = await client.DownloadstringTaskAsync(url);
          return download;
          }

          



Dışarıdan dataKontrol bir parametre alıcak

.   

     public class IstekManager
    {
        public async Task GetIstek (DataGridView dgv)
        {
            try
            {
                dgv.DataSource = null;
                SqlTool.komut.Connection = SqlTool.baglanti;
                SqlTool.komut.CommandType = System.Data.CommandType.Text;
                SqlTool.komut.CommandText = " select  " +
                   " 'Trafik' as Istek ,  " +
                   " t.IstekId ,   " +
                   " K.AdSoyad ,   " +
                    " t.TCVKN ,  " +
                    " t.Plaka ,  " +
                    " t.RuhsatSeriNo ,  " +
                    " t.RuhsatBelgeNo ,  " +
                    " t.Credate , " +
                    " t.Moddate ,  " +

                      "   KO.AdSoyad ,  " +
                        " KG.AdSoyad ,  " +
                        " s.Statu " +
                  "   from TblistekTrafik t " +
                 "    left outer join TblKullanicilar K on t.KullaniciId = K.KullaniciId " +
                 "    left outer join TblKullanicilar KO on t.CreUserId = KO.KullaniciId " +
                 "    left outer join TblKullanicilar KG on t.ModUserId = KG.KullaniciId " +
                 "    left outer join TblStatuler s on t.StatuId = s.StatuId where t.ActiveFlg = 1 " +


                 "    union " +
                   "  select " +

                  "       'Kasko' as Istek , " +
                  "       t.IstekId , " +
                  "       K.AdSoyad , " +
                   "      t.TCVKN , " +
                 "        t.Plaka , " +
                 "        t.RuhsatSeriNo , " +
                "         t.RuhsatBelgeNo , " +
                "         t.Credate , " +
                 "        t.Moddate , " +

                "         KO.AdSoyad , " +
               "          KG.AdSoyad , " +
                "         s.Statu " +
               "      from TblistekKasko t " +
             "        left outer join TblKullanicilar K on t.KullaniciId = K.KullaniciId " +
             "        left outer join TblKullanicilar KO on t.CreUserId = KO.KullaniciId " +
             "        left outer join TblKullanicilar KG on t.ModUserId = KG.KullaniciId " +
              "       left outer join TblStatuler s on t.StatuId = s.StatuId " +

               "      where t.ActiveFlg = 1  ";

                SqlTool.baglanti.Open();
                await SqlTool.komut.ExecuteNonQueryAsync();
                SqlTool.baglanti.Close();

                using (SqlDataAdapter sda = new SqlDataAdapter(SqlTool.komut))
                {
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
                    dgv.DataSource = dt;
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
            }

        }
              
          

Sayfada çağırırken Load kısmının önünde async belirtilmeli.

.   


            private async void FrmIsteklerSonHali_Load(object sender, EventArgs e)
        {
            IstekManager mng = new IstekManager();
            await mng.GetIstek(dtGridIstekler);
          }

          
17.06.2020