【发布时间】:2012-10-05 17:15:07
【问题描述】:
如果我有一个
While not terminated do
begin
doStuff;
end
在 Delphi XE2 线程的执行方法中循环,我不想让它成为我所有的失败者。
我应该怎么称呼,
在 Delphi 7 中,这很简单,我会调用 Sleep(X),其中 X 与我认为线程的有趣程度成反比。
但现在,我有
SpinWait(X);
调用 YieldProcessor X 次
和
Yield;
调用windows函数“SwitchToThread”。
我应该使用其中任何一个还是应该只设置线程的优先级?
【问题讨论】:
-
等待事件有什么问题?在这种情况下,线程可以进入休眠状态,直到事件发出信号。
-
您必须使用适当的等待同步对象。
Sleep永远不是答案。绝不。永远。 -
@DavidHeffernan 更真实的话很少说出来。
标签: multithreading delphi delphi-xe2