Thread VB.Net Tutorial

Imports System
Imports System.Threading
Imports System.Security.AccessControl
Imports System.Security.Principal
Public Class Example
    Public Shared Sub Main()
        Dim user As String = Environment.UserDomainName & "\" & Environment.UserName
        Dim mSec As New MutexSecurity()
        Dim ruleA As New MutexAccessRule(user,MutexRights.Synchronize Or MutexRights.Modify,AccessControlType.Allow)
        mSec.AddAccessRule(ruleA)
        Dim rule As New MutexAccessRule(user,MutexRights.ChangePermissions,AccessControlType.Deny)
        mSec.AddAccessRule(rule)
        ShowSecurity(mSec)
        rule = New MutexAccessRule(user, MutexRights.ReadPermissions, AccessControlType.Allow)
        mSec.AddAccessRule(rule)
        ShowSecurity(mSec)
        Console.WriteLine("Use RemoveAccessRuleSpecific on the original rule.")
        mSec.RemoveAccessRuleSpecific(ruleA)
        ShowSecurity(mSec)
        Console.WriteLine("Use RemoveAccessRuleSpecific with the correct rights.")
        rule = New MutexAccessRule(user,MutexRights.Synchronize Or MutexRights.Modify Or MutexRights.ReadPermissions, AccessControlType.Allow)
        mSec.RemoveAccessRuleSpecific(rule)
        ShowSecurity(mSec)
    End Sub 
    Private Shared Sub ShowSecurity(ByVal security As MutexSecurity)
        Console.WriteLine("Current access rules:")
        For Each ar As MutexAccessRule In security.GetAccessRules(True, True, GetType(NTAccount))
            Console.WriteLine("User: {0}", ar.IdentityReference)
            Console.WriteLine("Type: {0}", ar.AccessControlType)
            Console.WriteLine("Rights: {0}", ar.MutexRights)
        Next
    End Sub
End Class