vTaskDelay(0) vs taskYIELD()

How does vTaskDelay(0) works? Is it equal to taskYIELD()? And if isn’t what is the difference?

vTaskDelay(0) vs taskYIELD()

taskYIELD() just performs a yield in whatever way the port being used does not. vTaskDelay() is a longer function that calculates a wake time, and blocks the task.  If vTaskDelay( 0 ) is called, then the wake time will be immediately, so the task will not block, but a yield will still be performed.  Therefore calling  vTaskDelay( 0 ) will have exactly the same end result as calling taskYIELD(), but is much less efficient in lines of code being executed. Regards.