Как передать блокировки между потоками?
я бы хотел
Monitor.Enter(this.StaticLock);
try
{
// Do something ...
ThreadPool.QueueUserWorkItem(state =>
{
try
{
// Do something else...
}
finally
{
Monitor.Exit(this.StaticLock);
}
});
}
catch (Exception)
{
Monitor.Exit(this.StaticLock);
throw;
}
Но это не работает, так как не можетMonitor.Exit
на объекте, который не былMonitor.Enter
в текущей теме. Как это сделать? Должен ли я использовать межпоточную связь?