HostProtectionAttribute.ExternalThreading Property

Definition

Gets or sets a value indicating whether external threading is exposed.

public:
 property bool ExternalThreading { bool get(); void set(bool value); };
public bool ExternalThreading { get; set; }
member this.ExternalThreading : bool with get, set
Public Property ExternalThreading As Boolean

Property Value

true if external threading is exposed; otherwise, false. The default is false.

Examples

The following code example illustrates the use of the HostProtectionAttribute attribute with the ExternalThreading property. This example is part of a larger example provided for the HostProtectionAttribute class.

// Use the enumeration flags to indicate that this method exposes synchronization 
//  and external threading.

[HostProtection(Synchronization=true,ExternalThreading=true)]
static void StartThread()
{
   Thread^ t = gcnew Thread( gcnew ThreadStart( WatchFileEvents ) );
   
   // Start the new thread.  On a uniprocessor, the thread is not given 
   // any processor time until the main thread yields the processor.  
   t->Start();
   
   // Give the new thread a chance to execute.
   Thread::Sleep( 1000 );
}
// Use the enumeration flags to indicate that this method exposes 
// synchronization and external threading.
[HostProtectionAttribute(Synchronization=true, ExternalThreading=true)]
private static void StartThread()
{
    Thread t = new Thread(new ThreadStart(WatchFileEvents));
    
    // Start the new thread. On a uniprocessor, the thread is not given
    // any processor time until the main thread yields the processor.
    t.Start();
    
    // Give the new thread a chance to execute.
    Thread.Sleep(1000);
}
' Use the enumeration flags to indicate that this method exposes  
' synchronization and external threading.
<HostProtectionAttribute(Synchronization := True, _
    ExternalThreading := True)> _
Private Shared Sub StartThread()
    Dim t As New Thread(New ThreadStart(AddressOf WatchFileEvents))

    ' Start the new thread. On a uniprocessor, the thread is not given 
    ' any processor time until the main thread yields the processor.  
    t.Start()

    ' Give the new thread a chance to execute.
    Thread.Sleep(1000)
End Sub

Remarks

Code that exposes external threading creates or manipulates threads other than its own, which might be harmful to the host.

Applies to

See also