当前位置: 首页>>代码示例>>C#>>正文


C# CancellationTokenRegistration.TryDeregister方法代码示例

本文整理汇总了C#中System.Threading.CancellationTokenRegistration.TryDeregister方法的典型用法代码示例。如果您正苦于以下问题:C# CancellationTokenRegistration.TryDeregister方法的具体用法?C# CancellationTokenRegistration.TryDeregister怎么用?C# CancellationTokenRegistration.TryDeregister使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Threading.CancellationTokenRegistration的用法示例。


在下文中一共展示了CancellationTokenRegistration.TryDeregister方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: InternalRegister

 internal CancellationTokenRegistration InternalRegister(Action<object> callback, object stateForCallback, SynchronizationContext targetSyncContext, ExecutionContext executionContext)
 {
     this.ThrowIfDisposed();
     if (!this.IsCancellationRequested)
     {
         int num = Thread.CurrentThread.ManagedThreadId % CancellationTokenSource.s_nLists;
         CancellationCallbackInfo cancellationCallbackInfo = new CancellationCallbackInfo(callback, stateForCallback, targetSyncContext, executionContext, this);
         SparselyPopulatedArray<CancellationCallbackInfo>[] array = this.m_registeredCallbacksLists;
         if (array == null)
         {
             SparselyPopulatedArray<CancellationCallbackInfo>[] array2 = new SparselyPopulatedArray<CancellationCallbackInfo>[CancellationTokenSource.s_nLists];
             array = Interlocked.CompareExchange<SparselyPopulatedArray<CancellationCallbackInfo>[]>(ref this.m_registeredCallbacksLists, array2, null);
             if (array == null)
             {
                 array = array2;
             }
         }
         SparselyPopulatedArray<CancellationCallbackInfo> sparselyPopulatedArray = Volatile.Read<SparselyPopulatedArray<CancellationCallbackInfo>>(ref array[num]);
         if (sparselyPopulatedArray == null)
         {
             SparselyPopulatedArray<CancellationCallbackInfo> value = new SparselyPopulatedArray<CancellationCallbackInfo>(4);
             Interlocked.CompareExchange<SparselyPopulatedArray<CancellationCallbackInfo>>(ref array[num], value, null);
             sparselyPopulatedArray = array[num];
         }
         SparselyPopulatedArrayAddInfo<CancellationCallbackInfo> registrationInfo = sparselyPopulatedArray.Add(cancellationCallbackInfo);
         CancellationTokenRegistration result = new CancellationTokenRegistration(cancellationCallbackInfo, registrationInfo);
         if (!this.IsCancellationRequested)
         {
             return result;
         }
         if (!result.TryDeregister())
         {
             return result;
         }
     }
     callback(stateForCallback);
     return default(CancellationTokenRegistration);
 }
开发者ID:rmc00,项目名称:gsf,代码行数:38,代码来源:CancellationTokenSource.cs

示例2: InternalRegister

 internal CancellationTokenRegistration InternalRegister(Action<object> callback, object stateForCallback, SynchronizationContext targetSyncContext, ExecutionContext executionContext)
 {
     this.ThrowIfDisposed();
     if (!this.IsCancellationRequested)
     {
         int index = Thread.CurrentThread.ManagedThreadId % s_nLists;
         CancellationCallbackInfo element = new CancellationCallbackInfo(callback, stateForCallback, targetSyncContext, executionContext, this);
         if (this.m_registeredCallbacksLists == null)
         {
             SparselyPopulatedArray<CancellationCallbackInfo>[] arrayArray = new SparselyPopulatedArray<CancellationCallbackInfo>[s_nLists];
             Interlocked.CompareExchange<SparselyPopulatedArray<CancellationCallbackInfo>[]>(ref this.m_registeredCallbacksLists, arrayArray, null);
         }
         if (this.m_registeredCallbacksLists[index] == null)
         {
             SparselyPopulatedArray<CancellationCallbackInfo> array = new SparselyPopulatedArray<CancellationCallbackInfo>(4);
             Interlocked.CompareExchange<SparselyPopulatedArray<CancellationCallbackInfo>>(ref this.m_registeredCallbacksLists[index], array, null);
         }
         SparselyPopulatedArrayAddInfo<CancellationCallbackInfo> registrationInfo = this.m_registeredCallbacksLists[index].Add(element);
         CancellationTokenRegistration registration = new CancellationTokenRegistration(this, element, registrationInfo);
         if (!this.IsCancellationRequested)
         {
             return registration;
         }
         if (!registration.TryDeregister())
         {
             this.WaitForCallbackToComplete(element);
             return new CancellationTokenRegistration();
         }
     }
     callback(stateForCallback);
     return new CancellationTokenRegistration();
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:32,代码来源:CancellationTokenSource.cs

示例3: InternalRegister

 internal CancellationTokenRegistration InternalRegister(Action<object> callback, object stateForCallback, SynchronizationContext targetSyncContext, ExecutionContext executionContext)
 {
     ThrowIfDisposed();
     if (!IsCancellationRequested)
     {
         var index = Thread.CurrentThread.ManagedThreadId % _nLists;
         var element = new CancellationCallbackInfo(callback, stateForCallback, targetSyncContext, executionContext, this);
         var registeredCallbacksLists = _registeredCallbacksLists;
         if (registeredCallbacksLists == null)
         {
             var arrayArray2 = new SparselyPopulatedArray<CancellationCallbackInfo>[_nLists];
             registeredCallbacksLists = Interlocked.CompareExchange<SparselyPopulatedArray<CancellationCallbackInfo>[]>(ref _registeredCallbacksLists, arrayArray2, null);
             if (registeredCallbacksLists == null)
                 registeredCallbacksLists = arrayArray2;
         }
         var array = Volatile.Read<SparselyPopulatedArray<CancellationCallbackInfo>>(ref registeredCallbacksLists[index]);
         if (array == null)
         {
             var array2 = new SparselyPopulatedArray<CancellationCallbackInfo>(4);
             Interlocked.CompareExchange<SparselyPopulatedArray<CancellationCallbackInfo>>(ref registeredCallbacksLists[index], array2, null);
             array = registeredCallbacksLists[index];
         }
         var registrationInfo = array.Add(element);
         var registration = new CancellationTokenRegistration(element, registrationInfo);
         if (!IsCancellationRequested)
             return registration;
         if (!registration.TryDeregister())
             return registration;
     }
     callback(stateForCallback);
     return new CancellationTokenRegistration();
 }
开发者ID:BclEx,项目名称:BclEx-Extend,代码行数:32,代码来源:CancellationTokenSource.cs


注:本文中的System.Threading.CancellationTokenRegistration.TryDeregister方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。