Мне было интересно, насколько хороши задачи для сценариев, где основной проблемой является блокировка ресурсов (например, доступ к COM-порту).
Если моя задача такова:
Task
{
lock(resource)
{
resource.doSomething();
}
};
По сути, это подождать, пока ресурс освободится, и затем использовать его.
Мой вопрос таков: если ресурс заблокирован, задача возвращается в очередь задач или поток заблокированпока ресурс не освободится?
Насколько я понимаю, если задача заблокирована, в этом случае было бы лучше использовать поток, чтобы избежать заполнения пула потоков заблокированными потоками, верно?