本文整理汇总了C#中SpinWait.Reset方法的典型用法代码示例。如果您正苦于以下问题:C# SpinWait.Reset方法的具体用法?C# SpinWait.Reset怎么用?C# SpinWait.Reset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SpinWait
的用法示例。
在下文中一共展示了SpinWait.Reset方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ConsumeItems
protected override void ConsumeItems( int count )
{
SpinWait spinWait = new SpinWait();
int value;
for ( int i = 0; i < count; )
{
if ( this.queue.TryDequeue( out value ) )
{
i++;
spinWait.Reset();
}
else
{
spinWait.SpinOnce();
}
}
}
示例2: StartSchedule
private void StartSchedule()
{
Task.Run(() =>
{
SpinWait sw = new SpinWait();
while (!this.cancellationTokenSource.Token.IsCancellationRequested &&
(!this.controllerQueue.IsCompleted || this.activeControllerItems.Any()))
{
FillInQueue(
this.activeControllerItems,
this.controllerQueue,
this.cancellationTokenSource.Token);
if (!this.cancellationTokenSource.Token.IsCancellationRequested)
{
// If we don't have the requested amount of active tasks
// running, get a task item from any active transfer item
// that has work available.
if (!this.DoWorkFrom(this.activeControllerItems))
{
sw.SpinOnce();
}
else
{
sw.Reset();
continue;
}
}
}
});
}