Ошибка Cannot await 'System.Threading.Tasks.Task'
От: x1 http://www.agpage.ru
Дата: 11.08.16 04:54
Оценка:
Здравствуйте!
Следующая ситуация. Приходится восстанавливать последнюю версию исходников по бинарникам и предыдущей версии исходиков.
На Reflector сделал проект, исправил большую часть ошибок, но не понимаю как исправить ошибку
на строке
await connection.Start();

Error: Error 5 Cannot await 'System.Threading.Tasks.Task'

Полный код класса
using System;
using System.Threading.Tasks;
using System.Windows;
using Microsoft.AspNet.SignalR.Client;

namespace NewLauncher.Extension.Features.Hub
{
    public class HubClient
    {
        private IHubProxy hubProxy;

        public async Task RunAsync(string url, Action<string> refreshAction)
        {
            var connection = new HubConnection(url);
            hubProxy = connection.CreateHubProxy("DemoHub");
            hubProxy.On("hubMessage", refreshAction);
            await connection.Start();
        }
    }
}


В старом коде он комплировался успешно.

Есть еще ряд аналогичных ошибок.
Cannot await 'System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>'
Cannot await 'System.Threading.Tasks.Task<NewLauncher.Entities.NewsModel[]>'

Предполагаю, что проблема где-то с настройками проекта или его зависимостей. Просто мне недостаточно понимания await в данном случае.
Спасибо.
Re: Код ошибки
От: Qbit86 Кипр
Дата: 11.08.16 06:26
Оценка:
Здравствуйте, x1, Вы писали:

x1>Error: Error 5 Cannot await 'System.Threading.Tasks.Task'


Погугли по коду ошибки. Убедись, что target framework 4.5, а не 4.0.
Глаза у меня добрые, но рубашка — смирительная!
Re: Ошибка Cannot await 'System.Threading.Tasks.Task'
От: VladCore  
Дата: 11.08.16 07:20
Оценка:
Здравствуйте, x1, Вы писали:

x1>Здравствуйте!


Не тот кусок кода ты привёл. Покажи HubConnection.Start

но сначала посмотри требования к await.
Re[2]: Код ошибки
От: x1 http://www.agpage.ru
Дата: 11.08.16 08:10
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Погугли по коду ошибки. Убедись, что target framework 4.5, а не 4.0.


Там очень странно. Framework выставлен везде 4.0, в том числе в старых исходниках, и, я так понимаю вручную,
добавлена ссылка на System.Runtime.CompilerServices.
Погуглил.
Такие ошибки возникают в случае проблем со ссылками в проекте, например, конфликт namespace и т.п..
Re[3]: Код ошибки
От: LWhisper  
Дата: 17.08.16 08:52
Оценка: -1
x1>Здравствуйте, Qbit86, Вы писали:
Q>>Погугли по коду ошибки. Убедись, что target framework 4.5, а не 4.0.
x1>Там очень странно. Framework выставлен везде 4.0, в том числе в старых исходниках, и, я так понимаю вручную,

Использование async/await некорректно в версиях .NET Framework ниже 4.5.
Вероятно, можно извратиться и скомпилировать (да и самому реализовать на ContinueWith), но по факту ничего хорошего из этого не выйдет.
http://stackoverflow.com/questions/14176028/why-does-logicalcallcontext-not-work-with-async
Re[4]: Код ошибки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.08.16 15:58
Оценка:
Здравствуйте, LWhisper, Вы писали:

LW>Вероятно, можно извратиться и скомпилировать (да и самому реализовать на ContinueWith), но по факту ничего хорошего из этого не выйдет.


https://www.nuget.org/packages/Microsoft.Bcl.Async
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.