Void в ASP. NET Asyn c событие OnClick - PullRequest
0 голосов
/ 20 апреля 2020

Я очень, очень новичок в ASP. NET. Я пытаюсь сделать asyn c для обработчика веб-агента, который запускается on_click. Я прочитал в многочисленных ответах SO, что при нажатии на события async void следует использовать.

Тем не менее, я продолжаю получать следующую ошибку, когда эта функция запускается по щелчку:

Асинхронная операция не может быть запущена в это время. Асинхронные операции могут быть запущены только внутри асинхронного обработчика или модуля или во время определенных событий в жизненном цикле страницы. Если это исключение произошло во время выполнения страницы, убедитесь, что страница помечена как <% @ Page Async = "true"%>. Это исключение также может указывать на попытку вызова метода «asyn c void», который обычно не поддерживается при обработке запроса ASP. NET. Вместо этого асинхронный метод должен возвращать задачу, а вызывающая сторона должна ожидать ее.

.ASPX

 <asp:LinkButton ID="lbRunTask"  OnClick="RunWebAgentTask_OnClick" 
                         CommandArgument='<%#Eval("TaskId").ToString()%>' runat="server" Text="Run<br>Now">

C#

protected async void RunWebAgentTask_OnClick(Object sender, EventArgs e)
        {
                ...

                if (await WebAgent_RunTaskAsync(Task).ConfigureAwait(false))
                {
                    ... //do task
                }

            }
        }

Как мне лучше всего справиться с этим asyn c? Я попытался попробовать async Task, но также получил там ошибку и получил предупреждение о том, что при событиях щелчка следует использовать async void несмотря на полученную ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...