我在理解ScheduledTask []时遇到了一些困难。这是在V 8中添加的。
在Windows 7,64位上,使用V 8.01,当我运行以下代码时
dt = 0.01;
c = 0;
Dynamic[c]
task = CreateScheduledTask[c += 1, {dt, 100}];
StartScheduledTask[task];
我得到'c'以值51结尾,而不是预期的100。
当我将'dt'更改为更高的值(例如0.02)或任何其他大于0.02秒的值时,我每次都会得到100.
如果我'dt'为0.005,我最终得到c = 27。使'dt'为0.0025,c变为18,依此类推。
所以,'dt'限制(CPU时间粒度)似乎是0.02来得到我想要的。这是20毫秒。
但是从其他网站,我看到Windows 7(取决于HW)可以提供远小于此的cpu时钟分辨率。可能是1-10毫秒。
我在这里遗漏了什么,还是我误解了这个功能?
有关此功能的帮助说
creates a task that will try evaluating expr once every time seconds up to count times total
我无法使用Mathematica自己的文档找到更多相关信息,但我可能忽略了它。
此功能的文档是http://reference.wolfram.com/mathematica/ref/CreateScheduledTask.html
由于 PS。完成后删除任务,命令是
RemoveScheduledTask[task]
或清理一切:
RemoveScheduledTask[ScheduledTasks[]]
我拥有的硬件是:Intel i7 CPU 930,2.8 Ghz 4 core