Самый простой способ, который я нашел для запуска задачи синхронно и без блокировки потока пользовательского интерфейса, - использовать RunSynchronously () как:
Task t = new Task(() =>
{
//.... YOUR CODE ....
});
t.RunSynchronously();
В моем случае у меня есть событие, которое срабатывает, когда что-то происходит. Я не знаю, сколько раз это произойдет. Таким образом, я использую код выше в моем случае, поэтому всякий раз, когда он срабатывает, он создает задачу. Задачи выполняются синхронно, и это отлично работает для меня. Я был просто удивлен, что мне потребовалось столько времени, чтобы выяснить, насколько это просто. Обычно рекомендации намного сложнее и подвержены ошибкам. Это было просто и чисто.
extends
в ограничении типа фактически охватывает оба:
T имеет тип PBaseHierarchical или T «расширяет» PBaseHierarchical
blockquote>Почти так же, как T: PBaseHierarchical в C #.
Также обратите внимание, что типы сравниваются структурно в Typescript.