Есть ли способ найти не ожидаемые задачи? - PullRequest
1 голос
/ 25 октября 2019

Я произвел огромный рефакторинг и преобразовал сотни методов веб-API из синхронизации в асинхронную.

Проблема в том, что теперь у меня много проблем! Главным образом потому, что каждый вызывающий из этих методов должен использовать ключевое слово await при каждом вызове.

Компилятор был полезен, так как в большинстве случаев можно обнаружить фиксированные ошибки / предупреждения компилятора при просмотре, но есть случаи, когда молчание происходиткомпилятор не помогает.

Например, в таких ситуациях:

public async Task<Item> Example()
{
    return new Item
    { 
        Property = GetName();
    };
}

private Task<string> GetName() 
{
    return Task.FromResult("Hello");
}

class Item 
{
    public object Property { get; set; }
}

Обратите внимание, что метод GetName не ожидается, но компилятор не будетне жаловаться и не выдавать никаких предупреждений, потому что свойство имеет тип object и будет принимать все (включая Task)

Есть ли способ обнаружить такую ​​неожиданную задачу? Может быть, расширение или хороший трюк?

1 Ответ

0 голосов
/ 25 октября 2019

Я нашел расширение, которое определенно мне помогло:

Оно доступно здесь: Предупреждение об отсутствии ожидания

Git-Hub: https://github.com/ykoksen/unused-task-warning

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