【发布时间】:2017-05-02 13:00:40
【问题描述】:
多年来,如果它存在,我还没有真正遇到过,所以我把它放在那里是为了了解是否有人知道任何低级 .NET 功能,可能在反射中,可以捕捉到线程已被锁定?也许是某种日志记录?
private object _lockObject = new object();
void MyFunc()
{
lock(_lockObject) // <== How can I understand how many threads are waiting on this?
{
// Do work
}
}
将某种锁处理程序放在一起并传递一个谓词例如...是否可行?
void DoLock(object lockObject, Action predicate)
{
push(threadid);
lock(lockObject)
{
pop(threadid);
predicate();
}
}
【问题讨论】:
-
谢谢 MickyD,信号量似乎不符合我想要实现的目标,因为您通常为一个功能设置一个信号量,而我正在寻找了解发生了什么所有锁。除非你有其他想法并且可以提供一个例子?
标签: c# .net multithreading logging locking