1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344
|
<Type Name="Interlocked" FullName="System.Threading.Interlocked" FullNameSP="System_Threading_Interlocked" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class public sealed Interlocked extends System.Object" />
<TypeSignature Language="C#" Value="public sealed class Interlocked" />
<MemberOfLibrary>BCL</MemberOfLibrary>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
</AssemblyInfo>
<ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
<Docs>
<summary>
<para> The <see cref="T:System.Threading.Interlocked" /> class provides atomic operations for variables that are shared by
multiple threads.</para>
</summary>
<remarks>
<para> The <see cref="T:System.Threading.Interlocked" /> methods protect against errors that can
occur when the scheduler switches contexts while a
thread is updating a variable that can be accessed by other threads. The
members of this class do not throw exceptions.</para>
<block subset="none" type="note">
<para>The <see cref="M:System.Threading.Interlocked.Increment(System.Int32@)" /> method
and its counterpart, <see cref="M:System.Threading.Interlocked.Decrement(System.Int32@)" />,
increment or decrement a variable and store
the resulting value, as an atomic operation.</para>
<para>The <see cref="M:System.Threading.Interlocked.Exchange(System.Int32@,System.Int32)" /> method atomically exchanges the values of the
specified variables. The <see cref="M:System.Threading.Interlocked.CompareExchange(System.Int32@,System.Int32,System.Int32)" /> method
provides an atomic
operation that compares two values and stores a third value in one of the
variables, based on the outcome of the comparison.</para>
</block>
</remarks>
</Docs>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Members>
<Member MemberName="Increment">
<MemberSignature Language="ILASM" Value=".method public hidebysig static int32 Increment(class System.Int32& location)" />
<MemberSignature Language="C#" Value="public static int Increment (ref int location);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location" Type="System.Int32&" RefType="ref" />
</Parameters>
<Docs>
<summary>
<para> Increments the specified variable and stores the result as an atomic operation.
</para>
</summary>
<param name="location">A <see cref="T:System.Int32" /> containing the variable whose value is to be incremented.</param>
<returns>
<para> A <see cref="T:System.Int32" /> containing the incremented value.
</para>
</returns>
<remarks>
<para>This method handles an overflow condition by wrapping: if <paramref name="location" /> =
<see cref="F:System.Int32.MaxValue" /> ,
<paramref name="location" /> + 1 = <see cref="F:System.Int32.MinValue" /> . No exception is thrown. </para>
</remarks>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Decrement">
<MemberSignature Language="ILASM" Value=".method public hidebysig static int32 Decrement(class System.Int32& location)" />
<MemberSignature Language="C#" Value="public static int Decrement (ref int location);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location" Type="System.Int32&" RefType="ref" />
</Parameters>
<Docs>
<summary>
<para> Decrements the specified variable and stores the result as an atomic operation.
</para>
</summary>
<param name="location">A <see cref="T:System.Int32" /> containing the variable whose value is to be decremented. </param>
<returns>
<para> A <see cref="T:System.Int32" /> containing the
decremented value.
</para>
</returns>
<remarks>
<para>This method handles an overflow condition by wrapping:
if <paramref name="location" /> = <see cref="F:System.Int32.MinValue" /> , <paramref name="location" /> - 1 =
<see cref="F:System.Int32.MaxValue" /> . No exception is
thrown. </para>
</remarks>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Increment">
<MemberSignature Language="ILASM" Value=".method public hidebysig static int64 Increment(class System.Int64& location)" />
<MemberSignature Language="C#" Value="public static long Increment (ref long location);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location" Type="System.Int64&" RefType="ref" />
</Parameters>
<Docs>
<summary>
<para> Increments the specified variable and stores the result as an atomic operation.
</para>
</summary>
<param name="location">A <see cref="T:System.Int64" /> containing the variable whose value is to be incremented. </param>
<returns>
<para>A <see cref="T:System.Int64" />
containing the incremented value. </para>
</returns>
<remarks>
<para>This method handles an overflow condition by wrapping: if <paramref name="location" /> =
<see cref="F:System.Int64.MaxValue" /> ,
<paramref name="location" /> + 1 = <see cref="F:System.Int64.MinValue" /> . No exception is thrown. </para>
<para> The 64-bit versions of <see cref="M:System.Threading.Interlocked.Increment(System.Int32@)" />
and <see cref="M:System.Threading.Interlocked.Decrement(System.Int32@)" /> are truly atomic only on systems where a <see cref="T:System.IntPtr" /> is 64-bits
long. On other systems, these methods are atomic with respect to each
other, but not with respect to other means of accessing the data.</para>
</remarks>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Decrement">
<MemberSignature Language="ILASM" Value=".method public hidebysig static int64 Decrement(class System.Int64& location)" />
<MemberSignature Language="C#" Value="public static long Decrement (ref long location);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location" Type="System.Int64&" RefType="ref" />
</Parameters>
<Docs>
<summary>
<para> Decrements the specified variable and stores the result as an atomic operation.
</para>
</summary>
<param name="location">A <see cref="T:System.Int64" /> containing the variable whose value is to be decremented. </param>
<returns>
<para>A <see cref="T:System.Int64" />
containing the decremented value. </para>
</returns>
<remarks>
<para>This method handles an overflow condition by wrapping: if <paramref name="location" /> =
<see cref="F:System.Int64.MinValue" /> ,
<paramref name="location" /> - 1 = <see cref="F:System.Int64.MaxValue" /> . No exception is thrown. </para>
<para>The 64-bit versions
of <see cref="M:System.Threading.Interlocked.Increment(System.Int32@)" /> and <see cref="M:System.Threading.Interlocked.Decrement(System.Int32@)" /> are truly atomic only on systems where
a <see cref="T:System.IntPtr" /> is
64-bits long. On other systems, these methods are atomic with respect to
each other, but not with respect to other means of accessing the data.</para>
</remarks>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Exchange">
<MemberSignature Language="ILASM" Value=".method public hidebysig static int32 Exchange(class System.Int32& location1, int32 value)" />
<MemberSignature Language="C#" Value="public static int Exchange (ref int location1, int value);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location1" Type="System.Int32&" RefType="ref" />
<Parameter Name="value" Type="System.Int32" />
</Parameters>
<Docs>
<summary>
<para> Sets a <see cref="T:System.Int32" /> variable to a specified value as an atomic
operation and returns the original value.
</para>
</summary>
<param name="location1">A <see cref="T:System.Int32" /> variable to set to the supplied value as an atomic operation. </param>
<param name="value">The <see cref="T:System.Int32" /> value to which <paramref name="location1" /> is set. </param>
<returns>
<para> A <see cref="T:System.Int32" /> containing the value of <paramref name="location1" />
before the exchange.</para>
</returns>
<remarks>To be added.</remarks>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="CompareExchange">
<MemberSignature Language="ILASM" Value=".method public hidebysig static int32 CompareExchange(class System.Int32& location1, int32 value, int32 comparand)" />
<MemberSignature Language="C#" Value="public static int CompareExchange (ref int location1, int value, int comparand);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location1" Type="System.Int32&" RefType="ref" />
<Parameter Name="value" Type="System.Int32" />
<Parameter Name="comparand" Type="System.Int32" />
</Parameters>
<Docs>
<summary>
<para>Compares two <see cref="T:System.Int32" /> values for equality and stores a
specified value if they are equal.</para>
</summary>
<param name="location1">A <see cref="T:System.Int32" /> reference whose value is updated with <paramref name="value" /> if the original value of <paramref name="location1" /> is equal to <paramref name="comparand" />. </param>
<param name="value">A <see cref="T:System.Int32" /> whose value will replace the value of <paramref name="location1" /> if <paramref name="location1" /> and <paramref name="comparand " /> are equal. </param>
<param name="comparand">A <see cref="T:System.Int32" /> to be compared to <paramref name="location1." /></param>
<returns>
<para> The original value of <paramref name="location1" />.
</para>
</returns>
<remarks>
<para> The compare and store operations are performed as
an atomic operation.</para>
</remarks>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Exchange">
<MemberSignature Language="ILASM" Value=".method public hidebysig static float32 Exchange(class System.Single& location1, float32 value)" />
<MemberSignature Language="C#" Value="public static float Exchange (ref float location1, float value);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Single</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location1" Type="System.Single&" RefType="ref" />
<Parameter Name="value" Type="System.Single" />
</Parameters>
<Docs>
<summary>
<para> Sets a <see cref="T:System.Single" /> variable to a specified value as an atomic
operation and returns the original value.
</para>
</summary>
<param name="location1">A <see cref="T:System.Single" /> variable to set to the supplied value as an atomic operation. </param>
<param name="value">The <see cref="T:System.Single" /> value to which <paramref name="location1" /> is set. </param>
<returns>
<para> A <see cref="T:System.Single" /> containing the value of <paramref name="location1" />
before the exchange.</para>
</returns>
<remarks>To be added.</remarks>
</Docs>
<Excluded>1</Excluded>
<ExcludedLibrary>ExtendedNumerics</ExcludedLibrary>
</Member>
<Member MemberName="CompareExchange">
<MemberSignature Language="ILASM" Value=".method public hidebysig static float32 CompareExchange(class System.Single& location1, float32 value, float32 comparand)" />
<MemberSignature Language="C#" Value="public static float CompareExchange (ref float location1, float value, float comparand);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Single</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location1" Type="System.Single&" RefType="ref" />
<Parameter Name="value" Type="System.Single" />
<Parameter Name="comparand" Type="System.Single" />
</Parameters>
<Docs>
<summary>
<para>Compares two <see cref="T:System.Single" /> values for equality and stores a
specified value if they are equal.</para>
</summary>
<param name="location1">A <see cref="T:System.Single" /> whose value is updated with <paramref name="value" /> if its original value is equal to <paramref name="comparand" />. </param>
<param name="value">The <see cref="T:System.Single" /> value that will replace value of <paramref name="location1" /> if <paramref name="location1" /> and <paramref name="comparand " /> are equal. </param>
<param name="comparand">A <see cref="T:System.Single" /> to be compared to <paramref name="location1." /></param>
<returns>
<para> A <see cref="T:System.Single" /> containing the original value of <paramref name="location1" />.
</para>
</returns>
<exception cref="T:System.ArgumentNullException">The address of <paramref name="location1" /> is <see langword="null" /> .</exception>
<remarks>
<para> The compare and store operations are performed as
an atomic operation.</para>
</remarks>
</Docs>
<Excluded>1</Excluded>
<ExcludedLibrary>ExtendedNumerics</ExcludedLibrary>
</Member>
<Member MemberName="Exchange">
<MemberSignature Language="ILASM" Value=".method public hidebysig static object Exchange(class System.Object& location1, object value)" />
<MemberSignature Language="C#" Value="public static object Exchange (ref object location1, object value);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location1" Type="System.Object&" RefType="ref" />
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<summary>
<para> Sets a <see cref="T:System.Object" /> reference to refer to a specified object as an
atomic operation and returns a reference to the original object.
</para>
</summary>
<param name="location1">The variable to set. </param>
<param name="value">The reference to which <paramref name="location1" /> is set. </param>
<returns>
<para> The original value of <paramref name="location1" /> .
</para>
</returns>
<exception cref="T:System.ArgumentNullException">The address of <paramref name="location1" /> is <see langword="null" /> .</exception>
<remarks>To be added.</remarks>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="CompareExchange">
<MemberSignature Language="ILASM" Value=".method public hidebysig static object CompareExchange(class System.Object& location1, object value, object comparand)" />
<MemberSignature Language="C#" Value="public static object CompareExchange (ref object location1, object value, object comparand);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="location1" Type="System.Object&" RefType="ref" />
<Parameter Name="value" Type="System.Object" />
<Parameter Name="comparand" Type="System.Object" />
</Parameters>
<Docs>
<summary>
<para> Compares two <see cref="T:System.Object" /> variables for equality and stores a specified object
if they are equal.</para>
</summary>
<param name="location1">A <see cref="T:System.Object" /> reference that is set to <paramref name="value" /> if the object to which it refers is equal to <paramref name="comparand" />. </param>
<param name="value">The reference that will replace the value of <paramref name="location1" /> if <paramref name="location1" /> and <paramref name="comparand" /> are equal. </param>
<param name="comparand">An object to be compared to that referred to by <paramref name="location1." /></param>
<returns>
<para> A <see cref="T:System.Object" /> containing the original value of <paramref name="location1" />.
</para>
</returns>
<exception cref="T:System.ArgumentNullException">The address of <paramref name="location1" /> is <see langword="null" /> .</exception>
<remarks>
<para> The compare and store operations are performed as an
atomic operation.</para>
</remarks>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>
|