Bookmark Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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. |