.NET 4.x Асинхронный метод: async + await - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Есть достаточно простой метод:
public UserControl1[,] ListToArray()
        {
            UserControl1[,] uc = new UserControl1[9, 9];
            int i = 0;
            for (int j = 0; j < 9; j++)
            {
                for (int k = 0; k < 9; k++)
                {
                    uc[j, k] = CellsList[i];
                    i++;
                }
            }
            return uc;
        }
и есть обращение к нему:
public void NewGameButton_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
        {
            uc = DataClass.SelfRef.ListToArray();            
        }
Как правильно сделать его асинхронным чтобы он вызывался из async функции так:
uc = await DataClass.SelfRef.ListToArray();
Я пробовал сделать так:
public async Task<UserControl1[,]> ListToArray()
        {
            await Task.Run(() => 
            {
                UserControl1[,] uc = new UserControl1[9, 9];
                int i = 0;
                for (int j = 0; j < 9; j++)
                {
                    for (int k = 0; k < 9; k++)
                    {
                        uc[j, k] = CellsList[i];
                        i++;
                    }
                }
                return uc;
            });            
        }
Но пишет что не все ветви кода возвращают значение. Помогите пожалуйста, заранее спасибо.

Решение задачи: «.NET 4.x Асинхронный метод: async + await»

textual
Листинг программы
public Task<UserControl1[,]> ListToArray()
        {
            UserControl1[,] uc = new UserControl1[9, 9];
            int i = 0;
            for (int j = 0; j < 9; j++)
            {
                for (int k = 0; k < 9; k++)
                {
                    uc[j, k] = CellsList[i];
                    i++;
                }
            }
            return Task.FromResult(uc);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5