Я хочу использовать веб-работников для обработки данных изображения в кусках и применения фильтров к данным изображения, поскольку работа непосредственно над потоком пользовательского интерфейса выглядит медленной. (Мой вопрос не специфичен для обработки данных изображений в грандиозной схеме вещей)Остановка веб-мастера при обработке большого количества данных?
Основная проблема, пока я придумываю решения по моей проблеме, заключается в том, что если бы я хотел разделить изображение, которое я обрабатываю на куски, а затем отправлю эти данные для веб-работников я все равно хотел бы отменить обработку, отправив другое сообщение веб-работникам. Это мое предположение, хотя, если я использую традиционный цикл (а не рекурсивную функцию, которая дает) для обработки данных, которые я не смогу получить дальше, до тех пор, пока этот процесс не будет завершен (отрицание полезности отправки сообщения отмены).
В этом случае? Я еще не пробовал это, но я хотел бы знать, стоит ли мне как-то разделить эти данные в самом веб-работнике, чтобы он мог продолжать получать дальнейшие сообщения и обрабатывать их.
Если разделить его на лучший способ, как бы вы поступили, по существу, уступая? Я предполагаю, что это будет какой-то 1 миллисекундный тайм-аут, который затем позволяет циклу событий обрабатывать входящие сообщения, а затем моя функция процесса забирает место, где она была остановлена, но если это не способ сделать это, может кто-то предложить другой?
Просто используйте генератор, который дает каждые 100 итераций и возобновляется с помощью 'setTimeout'. – Ginden
Да, это звучит прекрасно. Конечно, вы также можете ['.terminate()'] (https://developer.mozilla.org/en-US/docs/Web/API/Worker/terminate) рабочего, не знаете, какую отмену вы хотите делать и как часто вам это нужно. – Bergi
Я думал об использовании .terminate(), но я думаю, что накладные расходы на воссоздание веб-работников могут испортить преимущество их использования. Я думаю, что событие отмены может быть вызвано довольно часто, потому что мне нужны ползунки и в зависимости от ввода пользователя, если они меняют значения перед его обработкой, что весьма вероятно, что он замедлит его. –