Запуск нескольких задач одновременно


Содержание

Несколько задач одновременно

24.03.2020, 13:52

Одновременно вычистить несколько текстовых полей
Привет. Есть 2 текстовых поля и 2 формы для ввода текста. При клике по кнопке необходимо почистить.

Создать и запустить одновременно несколько потоков
Всем привет) Необходимо создать несколько потоков и запустить их одновременно (без помощи циклов).

Одновременно воспроизвести несколько звуковых файлов
Как одновременно воспроизвести несколько звуковых файлов?

Как проиграть несколько звуков одновременно?
Я всегда использовал Sound Player для проигрывания звуков, до сегодняшнего дня, когда мне.

Запуск несколько фоновых потоков одновременно
Необходимо заполнять массив из n элементов. Как организовать заполнение массива одновременно в.

Запуск нескольких задач одновременно на Application_Start

Может ли какая-то дружелюбная душа указать мне правильное направление.

По сути, чего я хочу добиться, так это сделать некоторую работу во время запуска веб-приложения. В основном разминка и настройка задач.

Эти задачи независимы друг от друга, и они не имеют общего состояния, поэтому я подумал, что запуск их одновременно может быть хорошей идеей.

Решение, к которому я пришел, заключается в следующем:

Чего я хочу добиться, так это как можно быстрее запустить эту независимую работу с потоками пула потоков и завершить прогрев.

Это запуск приложения, поэтому у меня нет необходимости запускать их асинхронно, хотя некоторые из этих задач выполняют некоторые операции ввода-вывода (в основном вызовы API).

Это хороший подход, чтобы раскрутить какую-то работу во время начальной загрузки? Кажется, это работает, но я могу пропустить некоторые потенциальные подводные камни, поэтому я здесь :)

1 ответ

Это хороший подход, чтобы раскрутить какую-то работу во время начальной загрузки?

Насколько продуктивна многозадачность?

Главная → Личная эффективность → Насколько продуктивна многозадачность?

Считается, что чем больше человек владеет навыками одновременного ведения различных дел, тем более он продуктивен по сравнению с другими. Многозадачность = Продуктивность. Так ли это? Совершенно очевидно, что наше отношение к этому вопросу неоднозначно: кто-то считает, что многозадачность неэффективна, и даже вредна, а кто-то не только сам успевает одновременно вести огромное количество дел одновременно, но и успевает обучать этому искусству других людей. Совершенно естественно, что многих людей волнует вопрос: как вести несколько дел одновременно и все успевать?


Что такое многозадачность?

Принято считать, что многозадачность — это способность человека выполнять и вести несколько дел одновременно. Мне кажется интересным и более верными другие определения многозадачности:

Многозадачность (multitasking) — способность разбивать несколько видов деятельности на удобные для выполнения части с тем, чтобы возвращаться к прерванной проблеме, будучи обогащённым опытом параллельного решения других вопросов.

Многозадачность (multitasking) – ситуация, в которой работа над заданием останавливается с целью того, чтобы приступить к выполнению нового задания.

Вам приходилось видеть людей, которые одновременно выполняют несколько задач:

  • Отправляют электронную почту и разговаривают по телефону.
  • Смотрят телевизор и читают газеты.
  • Присутствуя на мероприятии, делают заметки совершенно по другому поводу
  • Управляют автомобилем и отвечают на телефонные звонки.

Как вы считаете, сложно управлять несколькими делами одновременно, или это тоже навык, который приобретается и постепенно становится нашей привычкой?

Да, многозадачность становится обыденностью в нашем сложном мире. И приходится успевать выполнять сто дел сразу, чтобы тебя не посчитали неудачником. Но какую цену мы при этом платим?

Исследования ученых доказывают, что люди не в состоянии справиться с более чем двумя задачами одновременно. Все дело в количестве лобных долей нашего мозга. Их всего две. Когда мы выполняем одну задачу, участки обеих лобных долей участвуют вместе в работе над задачей. Когда задач становится две, доли разделяют свои обязанности, и каждое полушарие сосредотачивается над своей целью.

Поэтому, имея в своем распоряжении всего две лобные доли, человек не в состоянии справиться с более чем двумя уникальными задачами. Когда добавляется третья, мозг вынужден заменить одну из первых задач. То есть, мы лишь в малой степени способны к многозадачности, хотя справедливости ради надо отметить, что среди нас есть индивидумы, способные вести несколько десятков дел и проектов одновременно, например, гуру российского инфобизнеса Андрей Парабеллум.

Его многозадачность кардинально отличается от нашей привычной: его цель — «зафиналить», то есть довести до запланированного результата дело или задачу. Нет результата, значит грош цена твоей многозадачности. Результаты и достижения должны быть обязательно.

Когда встречаешь таких людей, хочется быть похожими на них. Время и условия диктуют свои правила, и нам приходится обращать внимание на то, как и что им позволяет справляться с большим объемом разнообразных задач. Интересно разгадать их секреты, с помощью которых они намного эффективнее, чем мы.

Как выполнять несколько дел одновременно?

Но свои секреты они просто так не раскрывают. Скорее всего, потрясающие результаты их многозадачности кроются в высокой организованности, аналитическом мышлении, способности к анализу и синтезу, системном подходе. Сначала это просто полезные привычки, затем привычки становятся навыками личной эффективности, встроенными в нашу деятельность. Если по роду деятельности вас часто отвлекают от основного занятия, то обладая необходимыми навыками, вы быстро найдете способы переключаться с одного занятия на другое. Даже имея ввиду, что для того, чтобы переключиться на текущее занятие, времени потребуется гораздо больше, чем было необходимо на выполнение этого задания.

Такая работа не нравится людям, более того это напрягает и создает неблагоприятный эмоциональный фон, в результате чего, домой мы приходим уставшие и выжатые, как лимон. Вероятность допущения ошибок в подобной стрессовой ситуации возрастает, все знают, насколько важно сконцентрироваться на выполнении важной задачи. Помехами может все, что отвлекает: музыка, разговоры, телефонные звонки, вопросы коллег и сотрудников.

Я думаю, что большинство из нас все-таки предпочитает концентрировать внимание на выполнении одной задачи, причем зная объем запланированных задач на день, постараться решать в короткие сроки, решая одну задачу за другой последовательно. Качество при этом не должно страдать.

Как справиться с многозадачностью

Есть несколько интересных приемов, которые позволяют вести несколько дел одновременно.

Илон Маск рекомендует:  Шаблон сайта для бизнеса HTML + CSS

1. Работая в компьютере, оставить открытой всего лишь одну вкладку. После выполнения задачи эту вкладку можно закрыть и открыть следующую.


2. Говорят, что одновременно вести несколько дел помогает использование нескольких компьютерных мониторов — они решают проблемы с краткосрочной памятью и повышают продуктивность.

3. Прежде, чем начать работу над еще одной задачей, советуют ее предварительно разбить на подзадачи, используя технику «Помодоро». Суть этого метода в том, что, разбивая задачу (день) на структурированные части, вы сосредоточенно работаете над выполнением по 25 минут, делая кратковременные перерывы.

4. Важность планирования трудно переоценить, поэтому умение спланировать работу в режиме многозадачности будет крайне полезным. Важно научиться назначать приоритеты задачам и всегда решать в первую очередь самые важные и самые срочные. Знайте свое время, знайте свои задачи и планируйте их соответственно, советуют те, кто с этим легко справляется.

5. Мотивация. О ней кстати будет уместно упомянуть в контексте качества выполняемых задач. Используя и загружая своих сотрудников по-максимуму, руководители часто забывают оценить такой труд по достоинству, оставляя материальное вознаграждение на прежнем уровне. В результате — неизбежное ухудшение качества работы, так как лично он не заинтересован трудиться в поте лица, бесплатно выполняя дополнительные обязанности.

6. Совет использовать перерывы для смены обстановки и переключения на какую-либо другую деятельность позволяет не только сосредоточиться на отдельных задачах, но и дает возможность немного отдохнуть и чуть-чуть развлечься.

Подробнее о всех этих способах можно прочитать в разделах «Личная эффективность» и «Мотивация», что-то можно найти в других источниках. Важно понимать, что от многозадачности нам никуда, увы, не деться. Выгоднее будет овладеть инструментами такой деятельности и быть готовым к работе в таком режиме.

Чаще всего, нам не стоит гордиться своей «многозадачностью«, так как мы не несколько дел выполняем одновременно, а делаем их все-таки последовательно, переключаясь с одной задачи на другую. Самое главное — сосредоточиться на одной задаче, для того, чтобы общая продуктивность не снижалась. А если наступает момент, когда необходимо выполнять несколько дел одновременно, то в нашем арсенале имеется достаточное количество встроенных привычек, которые в авральном режиме справятся с несколькими делами в два счета.

Понимая, что режим многозадачности сам по себе не всегда продуктивен, надо понимать главное: надо видеть различия между ситуациями, и понимать, когда действительно необходимо выполнять несколько дел одновременно, и когда этого можно избежать. Надо стараться решать задачи по мере их поступления. За это наш мозг скажет нам спасибо.

О том, что многозадачный режим повышает уровень стресса, хорошо написано в книге Лео Бабауты, которую можно скачать здесь: («Focus free» – «Концентрируйся свободно»)

Успевайте больше за меньшее время вместе с «Копилкой эффективных советов».

Как в Windows запустить несколько приложений сразу, не прописывая их в автозагрузку

И з всех программ, которые установлены на вашем компьютере, наверняка найдётся две-три таких, которыми вы пользуетесь постоянно. Не важно, какие именно это будут программы, имеет значение лишь то, что запускать их вам приходится каждый раз после старта компьютера. Конечно, их можно прописать в автозагрузку, но мы бы не рекомендовали вам этого делать, напротив, советуем убрать из автостарта все сторонние приложения, чтобы не тормозить процесс загрузки системы.

Открыть же несколько программ одновременно можно другим и очень простым способом, с которым и предлагаем ознакомиться. Задача следующая: сделать так, чтобы при клике по одному ярлыку запускались две программы — браузер Firefox и плеер Winamp. Для этого нам понадобится обычный ярлык и командный файл BAT или CMD. Ярлык мы создадим позже, а сейчас приступим к написанию скрипта. Создайте Блокнотом новый файл и вставьте в него этот код:

Мультизадачность с Ардуино: несколько процессов одновременно

Этот материал описывает метод работы с Ардуино при котором создается иллюзия, что плата выполняет одновременно несколько задач.

Используя этот метод, Ардуино сможет одновременно делать ряд процессов:

  • переключение светодиода каждые 300 мс (миллисекунды);
  • прокрутка строки текста каждые 250 мс;
  • изменение настраиваемой гистограммы каждые 100 мс.

Вы сможете использовать данный материал как шаблон для своих собственных проектов.


Комплектующие

Для этого проекта требуется очень немного деталей:

  • 1x — микроконтроллер Arduino Uno R3
  • 1x — I2C ЖК-дисплей 16×2
  • 1x — USB-кабель arduino-to-PC
  • 4x — провода для перемычек с разъемами «папа-мама»

Все детали можно заказать в любом интернет-магазине.

Схема подключения

Изображение выше показывает как нам нужно всё соединить.

Код для Ардуино

Код вы найдете ниже. Вы можете скопировать его, либо скачать файл .ino и вставить его содержимое в новый эскиз arduino.

Вам также потребуется установить библиотеку I2C для вашего ЖК-дисплея. Можно посмотреть в наших библиотеках на сайте или использовать библиотеку скачанную с http://arduino-info.wikispaces.com/LCD-Blue-I2C#v1. Если у вас есть другой чип, а не тот, что отмечен на фото выше — вам нужно будет скачать другую библиотеку.

После того как вы найдете подходящую библиотеку, загрузите zip-файл и установите её, используя нашу инструкцию.

Теория

Пустой цикл loop()<> в коде arduino заставит ардуино «вращаться» (прим.ред. — цикличность) несколько тысяч раз в секунду. Давайте посмотрим, что произойдет, когда мы добавим эту задачу

Одна задача.

Следующий код будет отображать «Hello World!» на вашем последовательном мониторе один раз в секунду:

Каждому циклу loop()<> теперь нужно более 1 секунды для завершения из-за команды задержки delay(1000).

Предполагая, что arduino имеет 16-мегагерцовый кристалл, команда delay(1000) тратит 16 000 000 тактов. Другие задачи возможны, если мы устраним эту задержку.

Многозадачность.

Давайте перепишем вышеприведенный фрагмент кода:

«Привет мир!» выведется после чего цикл loop()<> возвращается к цикличности с полной скоростью до тех пор, пока флажок 1 = истина.


Поскольку loop()<> нечего делать, а процесс работает на полной скорости, добавим еще одну задачу.

Эта часть кода заставляет светодиод «переключаться», после чего loop()<> снова возвращается в процесс, пока флаг Flag2 = true (флажок 2 = ложь).

Не обращая внимания на то, как устанавливаются флажки, мы теперь можем выполнять несколько задач в одно и тоже время.

Длительные задачи требуют специальных методов кода.

Многозадачность, скажем так, «коротких» задач, таких как мигание светодиода, довольно простое дело. Но что делать с многозадачностью при «длинных» задачах, такие как прокрутка текстового сообщения например? Это требуют другого подхода.

Чтобы создать иллюзию многозадачности (см. видео в начале материала), длинные задачи должны быть переписаны как серия небольших задач, таким образом каждый раз через цикл выполняется другой кусок кода.

Это достигается за счет использования «статических» переменных* для отслеживания того, как далеко продвинулась задача. В данном случае это показывают функции «scrollMessage ()» и «bargraph()».

* Когда подпрограмма вызывается, все «переменные» забывают свои предыдущие значения, если они не были объявлены «статическими», и в этом случае предыдущее значение доступно при вызове следующей подпрограммы.

Планировщик заданий

Секрет установки флагов — создать цикл в 1 миллисекунду (мс) с использованием одного из таймеров Arduino Uno R3. Можно использовать Timer/Counter 2 (8 бит), который оставляет Timer/Counter 1 (16-бит) свободным для других задач.

Илон Маск рекомендует:  Интерполяционный поиск элемента в массиве

1 мс достигается путем деления частоты 16 000 000 Гц на 128 для получения интервала времени 8 микросекунд. Если теперь считать эти импульсы 8 мкс и генерировать прерывание, когда счетчик достигнет 125, то 125 x 8 или 1 мс истечет**.

** Фактически мы загружаем 125-1 = 124 в «сравнительный регистр соответствия», потому что прерывание не происходит до следующего (125-го) тактового импульса.

Флаги устанавливаются путем помещения следующего кода в ISR (процедуру обслуживания прерываний):

Как только счетчик достигнет своего целевого значения, счетчик очищается и устанавливается флаг. Вышеприведенный код занимает очень мало времени для выполнения, так как команд очень мало.

Основной цикл loop()<> видит каждый флаг, который задает планировщик задач и выполняет задачу. Добавление дополнительных задач достаточно просто. Создайте дополнительный счетчик и флаг, а затем имитируйте приведенный выше код. На графике выше показана взаимосвязь между тремя задачами, которые выполняет ардуино в данном примере.

Вы можете заметить, что:

  • иногда loop()<> не имеет задач для выполнения;
  • иногда loop()<> выполняет только одну или две задачи;
  • каждая из задач вызывается разное количество раз;
  • гистограмма продвигается каждые 100 мс;
  • текст прокручивается каждые 250 мс;
  • светодиод переключается каждые 300 мс.

Ключевые моменты


Для успешной многозадачности:

  • Избегайте функций delay() или delayMicroseconds(). Вместо этого
  • создавайте циклы и
  • используйте планировщик задач,
  • а длительные задачи следует рассматривать как серию небольших «кусков»
  • со «статическими» переменными, отслеживающими прогресс.

На этом пока всё про мультизадачность в Ардуино. Хороших вам проектов.

Опубликовал: Константин Александров / 14.06.2020

Как на компьютере или ноутбуке запустить две одинаковые программы одновременно, например открыть сразу два скайпа или две другие программы.

Эта статья про то, как на компьютере запустить две одинаковые программы одновременно, к примеру вы хотите открыть на ноутбуке сразу два Skype или какая-то другая программа, в которой нужно вбивать данные пользователя, а компьютер использует не один человек. Пишу эту статью, так как в windows изначально нельзя запустить одну программу два раза. А бывает так, что два разных пользователя хотят открыть на одном компьютере два скайпа или другие программы или приложения и чтоб могли входить двое под своими учётными данными.

Так вот для того, чтобы решить вопрос и запустить одновременно на одном компьютере две одинаковые программы нужно сначала скачивать из инета необходимую нам программу, если конечно она отсутствует на компьютере. Загрузив нужную программу, которую мы хотим сразу два раза открыть на ноутбуке или ПК мы устанавливаем ее. Если нужная приложение уже есть на вашем ноутбуке, то чтоб запустить программу два раза, нам не нужно искать какие-то дополнительные программы в просторах инетернета. Достаточно перейти на компьютере или ноутбуке в «Пуск», выбрать «Все программы», найти «Skype»(или что у вас там) и нажать по значку скайпа правой кнопкой мыши. В открывшемся подменю, выберите «Отправить» на рабочий стол в качестве ярлыка. На столе найдите ярлык скайпа, кликните по нему правой кнопкой и выберите «Свойства». Откроется окно, в поле «Объект» добавьте в конец строки /secondary через пробел. Клик по «Применить» и «Ок». Жмем по ярлыку приложения и вот вам и результат!! На панели задач появится вторая иконка Skype или другой программы.

С этого момента на вашем компе установлено два скайпа, причем работать ими могут два разных юзера одновременно с одного компьютера или ноутбука. Теперь вы знаете как можно открывать две одинаковые программы на одном ПК. Желаю всем успехов.

Статью прислал Валерий Артюшкин. Статус проверки и оплаты за статью: Проверен и оплачен.

  • Надеюсь вам помогла данная статья и вы смогли открыть на одном компьютере две программы скайпа одновременно для разных пользователей.
  • Мы будем рады, если вы оставите отзыв, комментарий, полезны совет или дополнение к статье.
  • Если у вас есть полезные советы, то вы можете разместить их на нашем сайте на отдельной странице, где будет указан автор статьи или же вы можете создать тему на нашем форуме.
  • Спасибо за отзывчивость, помощь и полезные советы!

Добавить отзывы, полезные советы и дополнения к тексту.

Автор:Игорь
17-07-2020
11 час. 56 мин.
Сообщение:
Ну ты просто красавчик, помогло, спасибо, даже с другими программами, просто лучший.
Автор:Lattin
18-06-2020
07 час. 08 мин.
Сообщение:
Фигня этот ваш метод не работает или запускается с глюками! я все перепробовал работает этот метод только в скайпе! НО и то с огромным набором глюков и не догруженных dll баз! и жизненоважных процессов!
Автор:Алексей
19-02-2020
18 час. 28 мин.
Сообщение:
Спасибo. C WhatsApp всё работает
Автор:Марина
05-11-2020
20 час. 10 мин.
Сообщение:
К сожалению, с вайбером не работает! А именно в этой программе нет варианта «просто выйти» как в скайпе. В вайбере придётся применять более кардинальные меры(
Автор:Серг
28-06-2020
22 час. 52 мин.
Сообщение:
Із Скайп працює, але не працює із вайбер.
Автор:Сергей Гайворонский
10-06-2020
10 час. 36 мин.
Сообщение:
Метод, вроде бы, рабочий, но, как мне кажется, на просторах интернета должен присутствовать отдельный exe-клиент, способный справляться с этой задачей, без индивидуального геморроя по отношению к каждому приложению. Такое предположение у меня сложилось только потому, на андроид существует с десяток приложений, соответствующих указанным выше требованиям. Спасибо за статью!
Автор:Koryun Hakhverdyan
01-03-2020
21 час. 33 мин.
Сообщение:
спосибо.. дольго искал такой способ. Работает реально. не забудьте через пробель вставить
Автор:alisa abdulova
03-01-2020
02 час. 25 мин.
Сообщение:
Не работает.
Автор:Сергій
12-10-2020
01 час. 19 мин.
Сообщение:
Не працює Ваш метод.
Автор:Дима
04-08-2020
13 час. 13 мин.
Сообщение:
Подскажите пожалуйста, как на одном компе можно запустить 2-15 аккаунтов разных программы друг вокруг? Чтобы все работали одновременно? Спасибо

Запуск сразу нескольких задач

В школьном проекте мы работаем над носимым устройством для отслеживания движения людей и частоты сердечных сокращений. Мы используем Arduino Pro Mini с датчиком сердцебиения и акселерометром. Носимое устройство использует Bluetooth для передачи данных, но только один или два раза в день, чтобы сэкономить аккумулятор.

Проблема, с которой мы в настоящее время сталкиваемся, заключается в том, что Arduino отслеживает данные акселерометра, а также считывает датчик сердцебиения на интервале выбора. См. Псевдокод внизу. Каким образом (желательно без реализации слишком большого количества библиотек) мы могли бы объединить эти две петли, чтобы акселерометр считывался без остановок, сохраняя интервал (около 30 минут) между показаниями сердечного ритма? Любой вход был бы очень благодарен, и при необходимости я могу предоставить дополнительную информацию.

Илон Маск рекомендует:  Что такое код cos cosh

4 ответа

Что вы хотите сделать, это довольно простая задача, вам просто нужно забыть о функции delay() . При написании более сложных программ, использующих его, как правило, это плохая идея, так как она блокирует выполнение кода, поэтому вы не получите никаких показаний датчиков, общения, всего. Вместо этого попробуйте что-то вроде этого:

Существует также хорошая библиотека Arduino, называемая TaskScheduler , которая в основном делает то же самое: периодически выполняет различные функции с разными временными интервалами.


millis () — ваш отличный друг здесь.

millis () — это функция, которая возвращает значение 32-разрядного счетчика, который увеличивается один раз за миллисекунду. Добавив текущее значение, возвращаемое millis (), к значению, представляющему количество миллисекунд, которые вы хотите «задержать», вы получите значение, которое можно сравнить с текущим значением, возвращаемым millis (), чтобы узнать, имеет ли период времени прошло.

Вы можете иметь столько переменных, сколько хотите, для хранения значений времени ожидания для millis (0 — вы выполняете соответствующее действие, когда millis () возвращает> = сохраненное значение и повторно инициализирует значение в какое-то новое будущее.

Переменные, используемые для хранения значений из millis () MUST , будут иметь тип unsigned long.
Таймер миллиса () загружается через каждые 49.7 дней.
(= 2 ^ 32/1000 мс /с /3600 с /час /24 ч /сут)

Если ваша система может работать дольше, чем без сброса или отключения питания, тогда необходимо знать о опросе таймера миллиса ().

Это намного проще, чем многие люди понимают, но лучше не обращать внимание здесь. КРОМЕ, чтобы знать, что если вы добавите константу в миллис (), а значение превышает 2 ^ 32 и усечено, сравнений и вычитаний wrt millis () все еще работают правильно, если переменная типа unsigned long. («Почему» в другом месте)

micros () похож на millis (), но возвращает время с момента сброса в микросекундах. В зависимости от используемого процессора micros () может иметь зернистость 4 uS, а не один uS. т.е. он выполняет 4 отсчета каждые 4 uS, а не 1 счет на uS.
micros () закатывается каждые 1,19 часа
(= 2 ^ 32/10 ^ 6/3600 с /ч)

// Пример — не проверено:

Чтобы обеспечить постоянство частоты дискретизации акселерометра 10 Гц, вам понадобится процедура прерывания 10 Гц, чтобы выполнить выборку, и, вероятно, окупите их где-нибудь, поскольку они будут накапливаться, пока вы не измеряете частоту сердечных сокращений.

Ваша основная петля может периодически собирать любые образцы акселерометра из очереди и через определенные промежутки времени читать сердечный ритм. Эта организация будет поддерживать скорость выборки акселерометра, независимо от того, есть ли у вашей основной петли что-нибудь еще или нет.

Сделайте очередь более продолжительной, чтобы удерживать все образцы, которые могли бы собираться во время измерения сердечного ритма, которые вы, вероятно, должны делать за один раз, даже если вы можете сделать это быстро, поэтому основной цикл попадает в канализацию очереди акселерометра как можно чаще.

В противном случае вам понадобится очередь размером до 10 Гц * 10 сек * maxPossibleConsecutiveHeartBeatMeasurements * factorOfSafety * sizeof (oneSample), и у вас не так много памяти, чтобы играть в Atmega 328.

Где вы будете хранить измерения между соединениями Bluetooth? Если это SD-карта, вам понадобится место для буфера записи, а основной цикл будет необходимо для записи на карточке.

См. https://electronics.stackexchange.com/a/67091/10371 (так как это другое сайт обмена стеками, я не буду копировать информацию)

Короткий ответ — использовать таймеры, которые вызывают прерывания. Примеры показаны в ссылке.

Запуск нескольких задач одновременно с использованием одного источника данных

Итак, как я могу запустить несколько задач одновременно, используя в качестве ввода текстовый файл.

Загрузить исходные данные

Вы смотрели на Parallel.ForEach?


Важно прочитать файл только один раз, и тогда каждая строка должна обрабатываться только один раз и только одной задачей. Критическая секция будет обработана ConcurrenQeue. Задачи будут создаваться отдельно, и они будут выбирать строки одну за другой.

Запуск нескольких задач одновременно на Application_Start

Может ли какая-то дружелюбная душа указать мне правильное направление.

По сути, чего я хочу добиться, так это сделать некоторую работу во время запуска веб-приложения. В основном разминка и настройка задач.

Эти задачи независимы друг от друга, и они не имеют общего состояния, поэтому я подумал, что запуск их одновременно может быть хорошей идеей.

Решение, к которому я пришел, заключается в следующем:

Чего я хочу добиться, так это как можно быстрее запустить эту независимую работу с потоками пула потоков и завершить прогрев.

Это запуск приложения, поэтому у меня нет необходимости запускать их асинхронно, хотя некоторые из этих задач выполняют некоторые операции ввода-вывода (в основном вызовы API).

Это хороший подход, чтобы раскрутить какую-то работу во время начальной загрузки? Кажется, это работает, но я могу пропустить некоторые потенциальные подводные камни, поэтому я здесь :)

1 ответ

Это хороший подход, чтобы раскрутить какую-то работу во время начальной загрузки?

Как на компьютере запустить одну программу одновременно несколько раз?

Как на компьютере запустить одну программу одновременно несколько раз?

Двойным щелчком мыши или кнопкой Enter. Процедура следующая: запускаете программу в первый раз, сворачиваете её (если она на весь экран), а потом запускаете её ещё раз кликом по иконке.

Однако не все программы можно запустить более одного раза. Некоторые просто напишут, что приложение уже запущено и ничего уже не измените. В других же такая функция имеется в настройках, как правило, она называется «запускать более одной копии». Ставите (или снимаете — по ситуации) галочку напротив данного пункта и можно открывать программу ещё раз, да ещё раз, да ещё много-много- много раз.

Это можно сделать не со всеми программами. Есть системные программы, которые работают только в одном варианте. Например меню (диалоговое окно) на скриншоте снизу может быть вызвано только один раз. Но это только человеком, программы и её могут запустить несколько раз.

Вообщем чтобы какую-то программу запустить несколько раз, для этого нужна специальная запускающая программа. Если занимаетесь программированием приложений под Windows, то в WindowsAPI есть специальная подпрограмма, предназначенная для запуска файлов.

Это команда: ShellExecute

Ещё подобные команды (по запуску файлов) по моему есть в способах программирования .BAT файлов. У кого нет среды разработки под Windows, тому лучше составить .BAT файл, так как его можно создать в обычном «Блокноте» (программе Notepad) и его не нужно компилировать, так как Windows понимает .BAT файлы.

Если подобную команду вызвать несколько раз, то программа, которую она вызывает, запустится несколько раз.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL