sum*_*ame 1 delphi debugging multithreading delphi-2010
是否有任何技术或工具可用于在运行时检测此类死锁?
在工作线程(几个中的一个,通常是4-6)中描绘这个
try
WaitForSingleObject(myMutex);
DoSTuffThatMightCauseAnException;
except
ReleaseMutex(myMutex);
end;
Run Code Online (Sandbox Code Playgroud)
或者更普遍的是有一种设计模式来避免这些错误吗?
经过长时间的黑客攻击,我在上面的代码中编写了上面的代码
更好的编码风格是使用try/finally而不是try/except for mutex release(或任何其他类型的资源释放,就此而言),即:
try
WaitForSingleObject(myMutex);
try
DoSTuffThatMightCauseAnException;
finally
ReleaseMutex(myMutex);
end;
except
...
end;
Run Code Online (Sandbox Code Playgroud)