776166, приложение подцепляется к астериск через телефон.
мы делали так. написали свое приложение на телефон под андроид и запустили внешний скрипт на сайте, скрипт управлял телефоном. в админке менеджер нажимал отправку шаблонного текста и он улетал в ввиде смс сообщения.
звонки сперва тоже принимали через железо, все эти провода и трубки достали и подцепились к обычным телефонам.
1. SetResult не убивает поток, а всего лишь говорит потоку, завершись пожалуйста.
2. ManagedThreadId будет одинаковый так как переключения между потоками не было
3. Вам надо установить таймер чтоб увидеть гонку. Асинхронными процессами приложение не руководит поэтому точный момент вы не узнаете, будет по разному.
Егор Полянский, если выбирать схемы то рекомендую начинать с Workflow, помогает упорядочить процессы, применять стоит когда у приложения цепочка действий зависит от нескольких процессов, остальные схемы можно пока пропустить. draw.io
То что вы показали это методология разработки Contract First, где сперва работа архитектора потом работа программиста. Разработчику лучше начинать изучать методологию Code First где сперва код потом архитектура. При правильном подходе паттернов программирования код превращается в расширяемую архитектуру и поддерживать такой проект легче.
Начинать надо с изучения паттернов.
Структура проекта строится через архитектурные паттерны - почитайте луковичную архитектуру https://metanit.com/sharp/mvc5/23.1.php
выделют 3 базовые концепции, слой бизнес логики, слой приложения, слой домена.
концепций может быть больше в зависимости от приложения.
у каждой концепции есть свои фундаментальные задачи.
поначалу будет сложно понимать почему какой то класс должен быть именно там. Берите в руки ИИ и закидывайте вопросами, пока руку не набьете.
после создания шапки проекта начнете писать код- начнете задаваться вопросом что должен делает класс. какой набор методов у него длжен быть, какой набор параметров должен хранить- здесь нужно применять паттерны проектирования и порождения.
Захотите разбираться в глубинах алгоритмов изучайте паттерны поведения
Saboteur, основная моя проблема была в том что 80й порт требовалось отдать для сборки образа. В другой ветке есть описание. Сама настройка контейнера заняла пол часа. там три команды для настройки. Эти же команды так или иначе выполняются для плагинов.