如一个任务向后转换状态,该任务将返回至最近一次操作之前的状态,可从该状态向前转换状态。例如,如任务处于“验证”状态,然后调用“开始任务”函数开始这个任务。任务依次经过保留、就绪、开始状态,在进入运行装前之前切换入“保留”和“就绪”状态。调用“停止任务”函数/VI时,任务不会停止以及从“运行”状态转换为“就绪”状态。如发生上述情况,结果不可预期。尽管从来不显式地预留资源,但是任务还是预留了一些资源。任务停止、退出就绪和保留状态,返回验证状态,转换为最近一次操作之前的状态,调用“开始任务”函数/VI。

另一个例子。假设任务处于“保留”状态,调用“读取”函数/VI进行有限次测量。任务隐式地从“保留”状态转换为“就绪”状态,然后进入“运行”状态开始读取操作。当读取操作完成后,任务不会继续保持运行状态。如发生上述情况,会发生非预期的结果,因为即使用户从来不需要显式地保留资源或开始任务,但是需要停止任务、取消保留资源。在有限读取操作完成后,任务应隐式地从“运行”状态转换为“就绪”状态,再转换为“保留”状态。这使得任务返回进行读取操作之前的状态。

需记住的是:设置通道、定时或触发的属性不会将任务转换为“未验证”状态。任务会处于当前状态,在下次状态转换发生时,任务的状态为“已验证”。如任务为“保留”状态,设置定时属性后,任务仍处于“保留”状态。下次任务转换为就绪状态时,任务为“已验证”。下次转换发生时,任务是“已验证”状态,NI-DAQmx返回一个属性无效的错误。