Delphi 检测过时的互斥体
是否有任何技术或工具可用于在运行时检测此类死锁 在一个辅助线程(几个线程中的一个,通常为4-6个)中想象这一点 或者更一般地说,是否有一种设计模式可以避免此类错误Delphi 检测过时的互斥体,delphi,multithreading,debugging,delphi-2010,Delphi,Multithreading,Debugging,Delphi 2010,是否有任何技术或工具可用于在运行时检测此类死锁 在一个辅助线程(几个线程中的一个,通常为4-6个)中想象这一点 或者更一般地说,是否有一种设计模式可以避免此类错误 我在一次较长的黑客攻击后的几小时内编写了上述代码一种更好的编码方式是使用try/finally而不是try/除了互斥释放(或任何其他类型的资源释放),即: 更好的编码风格是使用try/finally而不是try/除了互斥释放(或者任何其他类型的资源释放),即: @allenporter:只有在发生异常时才会释放互斥体,因此正常执行会导
我在一次较长的黑客攻击后的几小时内编写了上述代码一种更好的编码方式是使用try/finally而不是try/除了互斥释放(或任何其他类型的资源释放),即:
更好的编码风格是使用try/finally而不是try/除了互斥释放(或者任何其他类型的资源释放),即:
@allenporter:只有在发生异常时才会释放互斥体,因此正常执行会导致互斥体不被释放released@allenporter:互斥仅在发生异常时释放,因此正常执行会导致互斥不释放
try
WaitForSingleObject(myMutex);
DoSTuffThatMightCauseAnException;
except
ReleaseMutex(myMutex);
end;
try
WaitForSingleObject(myMutex);
try
DoSTuffThatMightCauseAnException;
finally
ReleaseMutex(myMutex);
end;
except
...
end;