dadreamer писал(а):
soleda писал(а):Я в labview заметил, что когда выполняются таймеры, параллельные задачи находятся в ожидании поэтому и спросил.
Это где вы такое увидели? Если участок кода работает параллельно, то на него никакие прочие куски кода влияния оказывать не должны (не учитываем в данном случае прерывания процессора на одноядерной системе).
суть в том, что в LV (в отличие от текстовых) всё, что не связано явно проводниками выполняется ПАРАЛЛЕЛЬНО.
Подозреваю, что описанная "проблема" замечена в циклах. Так суть wait в том и заключается (как описано в предыдущих двух сообщениях), чтобы подождать.
Это значит, что функции работают себе, как и должны, в параллель с ожиданием. И ожидание работает в параллель с остальными функциями.
НО цикл не может перейти на новую итерацию, пока всё, что в нём находится не будет выполнено.
Соответственно, все быстрые функции закончили НЕ ждут, а ЗАКОНЧИЛИ работу и "ждут" следующей итерации.
А wait добросовестно ждёт, когда истечёт заданное время. хот 1, хоть 1000мс.
Если надо что-то делать с частотой 1 Гц и параллельно делать что-то быстрее, то не исключено, что будет разумно сделать два цикла. Они спокойно будут крутиться параллельно. Один с таймером 1 Гц, а второй с нужной частотой (но там wait тоже рекомендуется поставить, чтобы не перегружать процессор).
И да, в отличие от текстовых, где
soleda писал(а):
и цикл начинает крутиться со скоростью приблизительно раз в 1ms+0.001ms+количество выполненных строк, скажем 1кГц.
т.е вовсе не 1 кГц, а ниже, в LV цикл будет крутиться именно с заданным периодом (при условии, конечно, что все параллельные функции успеют отработать в заданное время и что ОС не решит отдефрагментировать винчестер или установить какое-нибудь обновление)