Morpheus_God
@Morpheus_God

Пару вопросов о потоках в C#. Как правильно ими управлять?

Добрый день. Пытаюсь сейчас понять как правильно управлять потоками в C#.
Конкретно интересует следующее, каким образом в программе распределять потоки?
К примеру у меня есть условная функция вида:
void TextFunc()
{
Console.Write("Hello, World");
}
void TextFunc1()
{
Console.Write("Hello, User");
}

Я создаю пару потоков при помощи массивов. И по индексу назначаю функцию.
Thread [] trd = new Thread[2];
Как назначить по индексу потока функцию? К примеру
trd[0] // тут ссылка на функцию
trd[1] // тут ссылка на функцию

Возможно ли это в принципе?
И каким образом вообще программа раскидывается по потокам?
Есть же софт который сам масштабируется по количеству потоков процессора и не теряет функционал.
По логике которую я понял, если сам указываешь количество потоков то и функции сам должен подписывать.
А если на процессоре не 4 ядра а 2. То получается что какой то функционал не доступен? Вообщем объясните как все правильно организуется.
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
@FreeBa
Все правильно организовывается через Task (ну или ThreadPool если нужен более низкий уровень).

В вашем случае достаточно:
Task.Run(() => TextFunc());
Task.Run(() => TextFunc1());

CLR сама все раскидает по ядрам цпу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы