Sobes.tech
Junior — Middle

Кай вақт бояд усул бо навъи баргардонии void истифода шавад ва кай — Task бе параметрҳо дар амалҳои асинхронӣ?

sobes.tech AI

Ҷавоб аз AI

Метод бо навъи баргардон void барои амалҳои синхронӣ истифода мешавад, ки ҳеҷ чиз намебозанд.

Дар барномасозии асинхрон дар C#:

  • async void танҳо барои ҳодисаҳои идоракунӣ истифода баред, ки дар он метод аз ҷониби системаи даъват мешавад ва натиҷа интизор нест.
  • Барои методҳои асинхронӣ, ки арзиш намебозанд, Task (бе параметр) истифода баред. Ин имкон медиҳад, ки методро бо await даъват кунед ва истисноҳоро идора кунед.

Масалан:

// дуруст барои методи асинхрон бе натиҷа
public async Task SaveDataAsync()
{
    await SomeIOOperationAsync();
}

// танҳо барои ҳодисаҳо истифода мешавад
public async void Button_Click(object sender, EventArgs e)
{
    await SaveDataAsync();
}

Аз ин рӯ, Task бе параметрҳо барои амалҳои асинхрон бе натиҷа, void — барои методҳои синхронӣ ё ҳодисаҳои асинхронӣ.