سؤال

وأنا أحاول لجعل الأمور أكثر بساطة. هنا هو رمز بلادي:

    If Threading.Monitor.TryEnter(syncRoot) Then
        Try
            'do something
        Finally
            Threading.Monitor.Exit(syncRoot)
        End Try
    Else
        'do something else
    End If

وهذا هو أسوأ من ReaderWriterLock من حيث الضوضاء. يمكنني استخدام C # أو VB، لذلك إجابات تطبيق إما سيكون موضع ترحيب.

هل كانت مفيدة؟

المحلول

استخدم مندوبا؟

ومنها مثلا.

public bool TryEnter(object lockObject, Action work) 
{
    if (Monitor.TryEnter(lockObject)) 
    {
       try 
       {
          work();
       }
       finally 
       {
           Monitor.Exit(lockObject);
       }        
       return true;
     }

     return false;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top