Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
369 lines (348 sloc) 26.7 KB
<Type Name="TimerEventSubscriptionCollection" FullName="System.Workflow.Runtime.TimerEventSubscriptionCollection">
<TypeSignature Language="C#" Value="public class TimerEventSubscriptionCollection : System.Collections.ICollection" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi serializable beforefieldinit TimerEventSubscriptionCollection extends System.Object implements class System.Collections.ICollection, class System.Collections.IEnumerable" />
<TypeSignature Language="DocId" Value="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" />
<TypeSignature Language="VB.NET" Value="Public Class TimerEventSubscriptionCollection&#xA;Implements ICollection" />
<TypeSignature Language="C++ CLI" Value="public ref class TimerEventSubscriptionCollection : System::Collections::ICollection" />
<TypeSignature Language="F#" Value="type TimerEventSubscriptionCollection = class&#xA; interface ICollection&#xA; interface IEnumerable" />
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.ICollection</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.Collections.IEnumerable</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8">
<AttributeName>System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Serializable</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Represents an ordered list of <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> objects.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
> [!NOTE]
> [!INCLUDE[DeprecatedContent](~/includes/deprecatedcontent-md.md)]
A <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection> represents the queue of <xref:System.Workflow.Runtime.TimerEventSubscription> objects associated with a workflow instance and provides methods to manage this queue. Subscriptions are ordered in the queue based on their <xref:System.Workflow.Runtime.TimerEventSubscription.ExpiresAt%2A> values; those with smaller <xref:System.Workflow.Runtime.TimerEventSubscription.ExpiresAt%2A> values are positioned before those with larger <xref:System.Workflow.Runtime.TimerEventSubscription.ExpiresAt%2A> values. You can use the methods provided by this class to manage the collection of active timer event subscriptions exposed by <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.TimerCollectionProperty> for each workflow instance. You can use <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.Add%2A> or <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.Remove%2A> to add or remove subscriptions from the timer queue. Whenever the first element in the timer queue changes, the <xref:System.Workflow.Runtime.Hosting.WorkflowSchedulerService> is called to cancel the timer event that was previously at the beginning of the queue and schedule the new timer event.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName="Add">
<MemberSignature Language="C#" Value="public void Add (System.Workflow.Runtime.TimerEventSubscription item);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Add(class System.Workflow.Runtime.TimerEventSubscription item) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Workflow.Runtime.TimerEventSubscriptionCollection.Add(System.Workflow.Runtime.TimerEventSubscription)" />
<MemberSignature Language="VB.NET" Value="Public Sub Add (item As TimerEventSubscription)" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; void Add(System::Workflow::Runtime::TimerEventSubscription ^ item);" />
<MemberSignature Language="F#" Value="member this.Add : System.Workflow.Runtime.TimerEventSubscription -&gt; unit" Usage="timerEventSubscriptionCollection.Add item" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="item" Type="System.Workflow.Runtime.TimerEventSubscription" />
</Parameters>
<Docs>
<param name="item">The <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> to add to the timer queue.</param>
<summary>Adds a <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> to the timer queue.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Adds the <xref:System.Workflow.Runtime.TimerEventSubscription> to the timer queue. Subscriptions in the queue are positioned based on their <xref:System.Workflow.Runtime.TimerEventSubscription.ExpiresAt%2A?displayProperty=nameWithType> values; those with smaller values are positioned in front of those with larger values. If the new subscription is added at the beginning of the queue, <xref:System.Workflow.Runtime.Hosting.WorkflowSchedulerService.Cancel%2A?displayProperty=nameWithType> is called to cancel the timer event that was previously at the beginning of the queue and <xref:System.Workflow.Runtime.Hosting.WorkflowSchedulerService.Schedule%28System.Threading.WaitCallback%2CSystem.Guid%2CSystem.DateTime%2CSystem.Guid%29?displayProperty=nameWithType> is called to schedule the new timer event. <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.Add%2A> locks the <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection> before adding the new subscription and is, therefore, thread safe.
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="item" /> is a null reference (<see langword="Nothing" /> in Visual Basic).</exception>
</Docs>
</Member>
<Member MemberName="CopyTo">
<MemberSignature Language="C#" Value="public void CopyTo (Array array, int index);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CopyTo(class System.Array array, int32 index) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Workflow.Runtime.TimerEventSubscriptionCollection.CopyTo(System.Array,System.Int32)" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual void CopyTo(Array ^ array, int index);" />
<MemberSignature Language="F#" Value="abstract member CopyTo : Array * int -&gt; unit&#xA;override this.CopyTo : Array * int -&gt; unit" Usage="timerEventSubscriptionCollection.CopyTo (array, index)" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Collections.ICollection.CopyTo(System.Array,System.Int32)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="array" Type="System.Array" />
<Parameter Name="index" Type="System.Int32" />
</Parameters>
<Docs>
<param name="array">The one-dimensional <see cref="T:System.Array" /> that is the destination of the elements copied from the <see cref="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" />. The <see cref="T:System.Array" /> must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array" /> at which copying begins.</param>
<summary>Copies the <see cref="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" /> elements to an existing one-dimensional <see cref="T:System.Array" />, starting at the specified array index.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
<xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.CopyTo%2A> is thread safe.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Count">
<MemberSignature Language="C#" Value="public int Count { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 Count" />
<MemberSignature Language="DocId" Value="P:System.Workflow.Runtime.TimerEventSubscriptionCollection.Count" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property Count As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property int Count { int get(); };" />
<MemberSignature Language="F#" Value="member this.Count : int" Usage="System.Workflow.Runtime.TimerEventSubscriptionCollection.Count" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Collections.ICollection.Count</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the number of <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> objects in the timer queue.</summary>
<value>The number of <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> objects in the queue.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetEnumerator">
<MemberSignature Language="C#" Value="public System.Collections.IEnumerator GetEnumerator ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.IEnumerator GetEnumerator() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Workflow.Runtime.TimerEventSubscriptionCollection.GetEnumerator" />
<MemberSignature Language="VB.NET" Value="Public Function GetEnumerator () As IEnumerator" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual System::Collections::IEnumerator ^ GetEnumerator();" />
<MemberSignature Language="F#" Value="abstract member GetEnumerator : unit -&gt; System.Collections.IEnumerator&#xA;override this.GetEnumerator : unit -&gt; System.Collections.IEnumerator" Usage="timerEventSubscriptionCollection.GetEnumerator " />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Collections.IEnumerable.GetEnumerator</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.IEnumerator</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Returns an enumerator that iterates through the <see cref="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" />.</summary>
<returns>An <see cref="T:System.Collections.IEnumerator" /> for the <see cref="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Access to the <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection> is synchronized; however, enumerating through a collection is intrinsically not a thread safe procedure. An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined. The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread safe procedure. To guarantee thread safety during enumeration, you can lock the <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection> during the entire enumeration by using <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.SyncRoot%2A>.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="IsSynchronized">
<MemberSignature Language="C#" Value="public bool IsSynchronized { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool IsSynchronized" />
<MemberSignature Language="DocId" Value="P:System.Workflow.Runtime.TimerEventSubscriptionCollection.IsSynchronized" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property IsSynchronized As Boolean" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property bool IsSynchronized { bool get(); };" />
<MemberSignature Language="F#" Value="member this.IsSynchronized : bool" Usage="System.Workflow.Runtime.TimerEventSubscriptionCollection.IsSynchronized" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Collections.ICollection.IsSynchronized</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a value that indicates whether the access to the <see cref="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" /> is synchronized (thread safe).</summary>
<value>Always returns <see langword="true" /> indicating that access to the <see cref="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" /> is synchronized (thread safe).</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Access to the <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection> is synchronized; however, enumerating through a collection is intrinsically not a thread safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads. <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.SyncRoot%2A> returns an object, which can be used to synchronize access to the <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection>.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Peek">
<MemberSignature Language="C#" Value="public System.Workflow.Runtime.TimerEventSubscription Peek ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Workflow.Runtime.TimerEventSubscription Peek() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Workflow.Runtime.TimerEventSubscriptionCollection.Peek" />
<MemberSignature Language="VB.NET" Value="Public Function Peek () As TimerEventSubscription" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; System::Workflow::Runtime::TimerEventSubscription ^ Peek();" />
<MemberSignature Language="F#" Value="member this.Peek : unit -&gt; System.Workflow.Runtime.TimerEventSubscription" Usage="timerEventSubscriptionCollection.Peek " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Workflow.Runtime.TimerEventSubscription</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Returns the <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> at the beginning of the timer queue without removing it.</summary>
<returns>The <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> at the beginning of the timer queue or a null reference (<see langword="Nothing" /> in Visual Basic) if the timer queue is empty.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
<xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.Peek%2A> is thread safe.
]]></format>
</remarks>
</Docs>
</Member>
<MemberGroup MemberName="Remove">
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Docs>
<summary>Removes the specified <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> from the timer queue.</summary>
</Docs>
</MemberGroup>
<Member MemberName="Remove">
<MemberSignature Language="C#" Value="public void Remove (Guid timerSubscriptionId);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Remove(valuetype System.Guid timerSubscriptionId) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Workflow.Runtime.TimerEventSubscriptionCollection.Remove(System.Guid)" />
<MemberSignature Language="VB.NET" Value="Public Sub Remove (timerSubscriptionId As Guid)" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; void Remove(Guid timerSubscriptionId);" />
<MemberSignature Language="F#" Value="member this.Remove : Guid -&gt; unit" Usage="timerEventSubscriptionCollection.Remove timerSubscriptionId" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="timerSubscriptionId" Type="System.Guid" />
</Parameters>
<Docs>
<param name="timerSubscriptionId">The <see cref="T:System.Guid" /> of the <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> to remove.</param>
<summary>Removes the <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> that has the specified subscription id from the timer queue.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Removes the <xref:System.Workflow.Runtime.TimerEventSubscription> with the specified subscription id from the timer queue. Subscriptions in the queue are positioned based on their <xref:System.Workflow.Runtime.TimerEventSubscription.ExpiresAt%2A?displayProperty=nameWithType> values; those with smaller values are positioned in front of those with larger values. If the subscription removed was the subscription at the beginning of the queue, <xref:System.Workflow.Runtime.Hosting.WorkflowSchedulerService.Cancel%2A?displayProperty=nameWithType> is called to cancel the timer event associated with this subscription and <xref:System.Workflow.Runtime.Hosting.WorkflowSchedulerService.Schedule%28System.Threading.WaitCallback%2CSystem.Guid%2CSystem.DateTime%2CSystem.Guid%29?displayProperty=nameWithType> is called to schedule a timer event for the subscription that is now at the beginning of the queue. <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.Remove%28System.Guid%29> is thread safe.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Remove">
<MemberSignature Language="C#" Value="public void Remove (System.Workflow.Runtime.TimerEventSubscription item);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Remove(class System.Workflow.Runtime.TimerEventSubscription item) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Workflow.Runtime.TimerEventSubscriptionCollection.Remove(System.Workflow.Runtime.TimerEventSubscription)" />
<MemberSignature Language="VB.NET" Value="Public Sub Remove (item As TimerEventSubscription)" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; void Remove(System::Workflow::Runtime::TimerEventSubscription ^ item);" />
<MemberSignature Language="F#" Value="member this.Remove : System.Workflow.Runtime.TimerEventSubscription -&gt; unit" Usage="timerEventSubscriptionCollection.Remove item" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="item" Type="System.Workflow.Runtime.TimerEventSubscription" />
</Parameters>
<Docs>
<param name="item">The <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> to remove from the timer queue.</param>
<summary>Removes the <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> from the timer queue.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Removes the <xref:System.Workflow.Runtime.TimerEventSubscription> from the timer queue. Subscriptions in the queue are positioned based on their <xref:System.Workflow.Runtime.TimerEventSubscription.ExpiresAt%2A?displayProperty=nameWithType> values; those with smaller values are positioned in front of those with larger values. If the subscription removed was the subscription at the beginning of the queue, <xref:System.Workflow.Runtime.Hosting.WorkflowSchedulerService.Cancel%2A?displayProperty=nameWithType> is called to cancel the timer event associated with this subscription and <xref:System.Workflow.Runtime.Hosting.WorkflowSchedulerService.Schedule%28System.Threading.WaitCallback%2CSystem.Guid%2CSystem.DateTime%2CSystem.Guid%29?displayProperty=nameWithType> is called to schedule a timer event for the subscription that is now at the beginning of the queue. <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.Remove%28System.Guid%29> is thread safe.
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="item" /> is a null reference (<see langword="Nothing" /> in Visual Basic).</exception>
</Docs>
</Member>
<Member MemberName="SyncRoot">
<MemberSignature Language="C#" Value="public object SyncRoot { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance object SyncRoot" />
<MemberSignature Language="DocId" Value="P:System.Workflow.Runtime.TimerEventSubscriptionCollection.SyncRoot" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property SyncRoot As Object" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property System::Object ^ SyncRoot { System::Object ^ get(); };" />
<MemberSignature Language="F#" Value="member this.SyncRoot : obj" Usage="System.Workflow.Runtime.TimerEventSubscriptionCollection.SyncRoot" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Collections.ICollection.SyncRoot</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets an object that can be used to synchronize access to the <see cref="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" />.</summary>
<value>An object used to synchronize access to the <see cref="T:System.Workflow.Runtime.TimerEventSubscriptionCollection" />.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
<xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.SyncRoot%2A> returns an object, which can be used to synchronize access to the <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection>.
Access to the <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection> is synchronized; however, enumerating through a collection is intrinsically not a thread safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection> during the entire enumeration by using <xref:System.Workflow.Runtime.TimerEventSubscriptionCollection.SyncRoot%2A> or catch the exceptions resulting from changes made by other threads.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="TimerCollectionProperty">
<MemberSignature Language="C#" Value="public static readonly System.Workflow.ComponentModel.DependencyProperty TimerCollectionProperty;" />
<MemberSignature Language="ILAsm" Value=".field public static initonly class System.Workflow.ComponentModel.DependencyProperty TimerCollectionProperty" />
<MemberSignature Language="DocId" Value="F:System.Workflow.Runtime.TimerEventSubscriptionCollection.TimerCollectionProperty" />
<MemberSignature Language="VB.NET" Value="Public Shared ReadOnly TimerCollectionProperty As DependencyProperty " />
<MemberSignature Language="C++ CLI" Value="public: static initonly System::Workflow::ComponentModel::DependencyProperty ^ TimerCollectionProperty;" />
<MemberSignature Language="F#" Value=" staticval mutable TimerCollectionProperty : System.Workflow.ComponentModel.DependencyProperty" Usage="System.Workflow.Runtime.TimerEventSubscriptionCollection.TimerCollectionProperty" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>System.Workflow.Runtime</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Workflow.ComponentModel.DependencyProperty</ReturnType>
</ReturnValue>
<Docs>
<summary>Timer queue associated with a workflow instance. This queue contains time ordered <see cref="T:System.Workflow.Runtime.TimerEventSubscription" /> objects for a workflow.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>
You can’t perform that action at this time.