Для многопоточной обработки без ожидания использую
private void QQ(string str) {
var outer = Task.Factory.StartNew(() => {
...
});
}
При этом метод QQ
может вызываться больше 10 раз в секунду.
Если я правильно понял, то Task
каждый раз создаёт новый поток.
Будут ли какие-либо проблемы, если создавать по 20 потоков в секунду, и, если да, то как можно отвести для этого метода только 2-3 потока?
Знаю, что можно создать лист, в который добавлять параметры для метода (в данном случае string str
), создать 2 потока, которые берут инфу из листа, блокировать их, и разблокировать при добавлении новой инфы в лист, но это попахивает костылём.
Если вам не требуется какая-то экзотическая работа с потоками, то проще использовать Task.Run(() => {});
По-умолчанию при работе с тасками новый поток не создается, а берется существующий из пула.
Таски как раз придуманы для того, чтобы не писать костыли с передачей параметров между потоками. По поводу проблем, тут нужно смотреть что у вас в () => {}
. Но попробуйте без преждевременной оптимизации и сделайте сначала по-простому.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В модели Book есть уникальный IdКак выбрать элемент из IEnumerable по Id=1?
Разрабатываю клиент-серверное приложение, где клиенты обмениваются данными в реальном времениНемного разобравшись в теме, выбрал наиболее...
Добрый деньНаписал программу, которая делает скрин выделенной части экрана
Доброго времени суток!Такая проблема: Создалa Form1(там должен меняться цвет), создалa Form2, кинулa туда кнопку, комбо бокс, что-то вроде выпадающего...