我有点难以理解 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(当然取决于硬件)可以提供比这小得多的 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