Configuration: 1C UT 11 Address warehouse Zebra TC26 TSD Work via RDP Product scanning is performed in receiving, placement, picking documents, and other warehouse operations. Current problem: Warehouse workers operate through the Zebra TSD. When scanning, they do not always notice messages on the screen. It is necessary to implement different sound signals for different scanning results. Required functionality: Successful scanning and processing in 1C short sound signal. Barcode read by the scanner, but the product is not found in 1C another sound signal (different from successful). Error during warehouse operation incorrect cell; incorrect product; other address warehouse control errors. separate sound signal. Sounds should be played on the TSD via RDP. Preferences: use of WAV files or another reliable playback method; ability to add new types of sound messages in the future; minimal impact on the speed of TSD operation. Please specify in your response: Experience with UT 11 and address warehouses. Have you implemented similar tasks for Zebra TSD or other TSDs. Estimated cost and execution time. How the implementation of sound signals is planned.
Proposals concealed
Proposals are currently absent
-
Oleksandr Vishnyak 28 November 2019Надо смотреть подробнее алгоритм: как идут потоки, как идет расход памяти, как выделяются потоки и т. д. Как говорится: вопрос в деталях. Что можно сказать сразу, так это то, что самый большой расход быстродействия - запись файлов. Любое обращение к диску, особенно к винту, а не ssd-шке - а там все идет тупо в одну очередь и любое обращение на переразметку диска (для нового файла) - это жуткий расход времени и ресурсов, не говоря о том, что эти задачи имеют самый низкий приоритет. Можем пообщаться в личке, чтобы понять, смогу ли я чем-то помочь или нужен более опытный разработчик.
-
Volodimir Sokolov 28 November 20191500-2000
если у вас нету 1500-2000 ядер процесора, то такое количесство потоков только замедляет рассчеты -
Andrey Vasilyev 28 November 2019элементарно
перед работой перемешайте строки
а потом в работе берите по очереди, одну за другой, они уже случайны по отношению друг к другу -
Denis Starodubov
28 November 2019
так и делается, только разные потоки могут эту строку одновременно дернуть
-
Vladislav N. 28 November 2019Если вы берете емейлы подряд, то попробуйте НЕ удалять строку из списка - просто храните номер последней использованной строки.
-
Denis Starodubov
28 November 2019
ок, как это сделать в многопотоке? отдельный обработчик делать, который бы формировал это?
-
Vladislav N. 28 November 2019Поток должен вызвать метод Interlocked.Increment и использовать возвращенное значение
-
Vladislav N. 28 November 2019Ну тогда я не понял в чем вопрос? Просто делайте обычный инкремент к++ внутри lock
-
Oleg B. 28 November 2019Загрузіть файл в масив , розділіть масив на таку кількість елементів, скільки буде потоків, передайте в кожен поток по елементу.
P.S. незнаю чи це буде працювати в Zeno poster
-
Vladimir T. 3 December 2019Предлагаю посмотреть в сторону Akka.NET, в свое время внедрял данную технологию в приложениях связанное с торговлей на бирже, где нагрузка гораздо больше чем в вашем приложении. Не знаю деталей но если можно в вашем приложении можно разбить процесс на большое количество мелких операций - акка подойдет как никогда, легка в освоении, масштабируема.