Bookmark Klas

Definitie

Vertegenwoordigt een punt waarop een werkstroom of activiteit passief kan wachten om te worden hervat.

public ref class Bookmark : IEquatable<System::Activities::Bookmark ^>
[System.Runtime.Serialization.DataContract]
public class Bookmark : IEquatable<System.Activities.Bookmark>
[<System.Runtime.Serialization.DataContract>]
type Bookmark = class
    interface IEquatable<Bookmark>
Public Class Bookmark
Implements IEquatable(Of Bookmark)
Overname
Bookmark
Kenmerken
Implementeringen

Voorbeelden

In het volgende voorbeeld wordt een ReadLine activiteit gemaakt. Wanneer de ReadLine activiteit wordt uitgevoerd, wordt er een Bookmark aangemaakt, wordt er een callback geregistreerd en wordt gewacht totdat de Bookmark activiteit is hervat. Wanneer de ReadLine activiteit wordt hervat, wijst deze de gegevens die met de Bookmark zijn doorgegeven toe aan zijn Result argument.

public sealed class ReadLine : NativeActivity<string>
{
    [RequiredArgument]
    public  InArgument<string> BookmarkName { get; set; }

    protected override void Execute(NativeActivityContext context)
    {
        // Create a Bookmark and wait for it to be resumed.
        context.CreateBookmark(BookmarkName.Get(context),
            new BookmarkCallback(OnResumeBookmark));
    }

    // NativeActivity derived activities that do asynchronous operations by calling
    // one of the CreateBookmark overloads defined on System.Activities.NativeActivityContext
    // must override the CanInduceIdle property and return true.
    protected override bool CanInduceIdle
    {
        get { return true; }
    }

    public void OnResumeBookmark(NativeActivityContext context, Bookmark bookmark, object obj)
    {
        // When the Bookmark is resumed, assign its value to
        // the Result argument.
        Result.Set(context, (string)obj);
    }
}

In het volgende voorbeeld wordt een werkstroom gemaakt die gebruikmaakt van de activiteit om de ReadLine naam van de gebruiker te verzamelen en weer te geven in het consolevenster. De hosttoepassing voert de daadwerkelijke taak uit van het verzamelen van de invoer en geeft deze door aan de workflow door de Bookmark te hervatten.

Variable<string> name = new Variable<string>
{
    Name = "name"
};

Activity wf = new Sequence
{
    Variables =
    {
        name
    },
    Activities =
    {
        new WriteLine()
        {
            Text = "What is your name?"
        },
        new ReadLine()
        {
            BookmarkName = "UserName",
            Result = name
        },
        new WriteLine()
        {
            Text = new InArgument<string>((env) => "Hello, " + name.Get(env))
        }
    }
};

AutoResetEvent syncEvent = new AutoResetEvent(false);

// Create the WorkflowApplication using the desired
// workflow definition.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Handle the desired lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    // Signal the host that the workflow is complete.
    syncEvent.Set();
};

// Start the workflow.
wfApp.Run();

// Collect the user's name and resume the bookmark.
// Bookmark resumption only occurs when the workflow
// is idle. If a call to ResumeBookmark is made and the workflow
// is not idle, ResumeBookmark blocks until the workflow becomes
// idle before resuming the bookmark.
wfApp.ResumeBookmark("UserName", Console.ReadLine());

// Wait for Completed to arrive and signal that
// the workflow is complete.
syncEvent.WaitOne();

Wanneer de ReadLine activiteit wordt uitgevoerd, wordt er een Bookmark genaamd UserName gemaakt en wordt er gewacht totdat de bladwijzer is hervat. De host verzamelt de gewenste gegevens en hervat vervolgens de Bookmark. De werkstroom wordt hervat, de naam wordt weergegeven en vervolgens voltooid. Houd er rekening mee dat er geen synchronisatiecode is vereist met betrekking tot het hervatten van de bladwijzer. Een Bookmark kan alleen worden hervat wanneer de werkstroom inactief is en als de werkstroom niet inactief is, blokkeert de aanroep naar ResumeBookmark totdat de werkstroom inactief wordt.

Opmerkingen

Wanneer een activiteit een Bookmarkactiviteit maakt, wordt deze inactief en wordt gewacht totdat de Bookmark activiteit wordt hervat. Als er andere activiteiten parallel zijn met de activiteit die de Bookmarkactiviteit heeft gemaakt, worden ze gepland voor uitvoering.

Bladwijzers kunnen worden hervat door de hosttoepassing met behulp van een van de ResumeBookmark overbelastingen.

Zie WorkflowInvoker en WorkflowApplication en Bladwijzers gebruiken voor meer informatie over bladwijzers.

Constructors

Name Description
Bookmark(String)

Initialiseert een nieuw exemplaar van de Bookmark klasse met behulp van de opgegeven naam.

Eigenschappen

Name Description
Name

Hiermee haalt u de naam van de bladwijzer op.

Methoden

Name Description
Equals(Bookmark)

Bepaalt of de huidige Bookmark en de opgegeven Bookmark verwijzing naar hetzelfde vervolgpunt in een werkstroom verwijzen.

Equals(Object)

Bepaalt of de huidige Bookmark en het opgegeven object verwijzen naar hetzelfde vervolgpunt in een werkstroom.

GetHashCode()

Retourneert een unieke id voor dit Bookmark exemplaar.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert de bladwijzernaam voor een benoemde bladwijzer of de bladwijzer-id voor een niet-benoemde bladwijzer.

Van toepassing op