61 lines
1.6 KiB
C#
61 lines
1.6 KiB
C#
|
//-----------------------------------------------------------------------------
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
namespace System.Activities.Runtime
|
||
|
{
|
||
|
using System;
|
||
|
using System.Runtime;
|
||
|
using System.Reflection;
|
||
|
using System.Runtime.Serialization;
|
||
|
using System.Diagnostics.CodeAnalysis;
|
||
|
|
||
|
|
||
|
[DataContract]
|
||
|
class EmptyWorkItem : ActivityExecutionWorkItem
|
||
|
{
|
||
|
// Called by the Pool.
|
||
|
public EmptyWorkItem()
|
||
|
{
|
||
|
this.IsPooled = true;
|
||
|
|
||
|
// Empty doesn't need to be cleared/reinitialized so we set it here
|
||
|
this.IsEmpty = true;
|
||
|
}
|
||
|
|
||
|
public void Initialize(ActivityInstance activityInstance)
|
||
|
{
|
||
|
base.Reinitialize(activityInstance);
|
||
|
}
|
||
|
|
||
|
protected override void ReleaseToPool(ActivityExecutor executor)
|
||
|
{
|
||
|
base.ClearForReuse();
|
||
|
|
||
|
executor.EmptyWorkItemPool.Release(this);
|
||
|
}
|
||
|
|
||
|
public override void TraceCompleted()
|
||
|
{
|
||
|
TraceRuntimeWorkItemCompleted();
|
||
|
}
|
||
|
|
||
|
public override void TraceScheduled()
|
||
|
{
|
||
|
TraceRuntimeWorkItemScheduled();
|
||
|
}
|
||
|
|
||
|
public override void TraceStarting()
|
||
|
{
|
||
|
TraceRuntimeWorkItemStarting();
|
||
|
}
|
||
|
|
||
|
public override bool Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
|
||
|
{
|
||
|
Fx.Assert("Empty work items should never been executed.");
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|