Bookmark Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje bod, ve kterém může pracovní postup nebo aktivita pasivně čekat na obnovení.
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)
- Dědičnost
-
Bookmark
- Atributy
- Implementuje
Příklady
V následujícím příkladu se ReadLine
vytvoří aktivita. Po spuštění ReadLine
aktivita vytvoří Bookmark, zaregistruje zpětné volání a pak počká na Bookmark obnovení. Po obnovení aktivita přiřadí data, ReadLine
která byla předána spolu s argumentem BookmarkResult .
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);
}
}
V následujícím příkladu se vytvoří pracovní postup, který pomocí ReadLine
aktivity shromáždí jméno uživatele a zobrazí ho v okně konzoly. Hostitelská aplikace provede skutečnou práci na shromáždění vstupu a předá ho pracovnímu postupu obnovením Bookmarkpříkazu .
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();
Když se ReadLine
aktivita spustí, vytvoří pojmenovanou BookmarkUserName
a pak počká na obnovení záložky. Hostitel shromáždí požadovaná data a pak obnoví .Bookmark Pracovní postup se obnoví, zobrazí název a pak se dokončí. Všimněte si, že pro obnovení záložky se nevyžaduje žádný synchronizační kód. A Bookmark lze obnovit pouze v případě, že pracovní postup je nečinný, a pokud pracovní postup není nečinný, volání ResumeBookmark bloků, dokud pracovní postup nebude nečinný.
Poznámky
Když aktivita vytvoří Bookmark, začne být nečinná a čeká Bookmark na obnovení. Pokud jsou paralelně s aktivitou, která vytvořila Bookmark, budou naplánovány další aktivity.
Záložky může obnovit hostitelská aplikace pomocí jednoho z ResumeBookmark přetížení.
Další informace o záložkách najdete v tématu Použití WorkflowInvokeru a WorkflowApplication a Bookmarks.
Konstruktory
Bookmark(String) |
Inicializuje novou instanci Bookmark třídy pomocí zadaného názvu. |
Vlastnosti
Name |
Získá název záložky. |
Metody
Equals(Bookmark) |
Určuje, zda aktuální Bookmark a zadaný Bookmark odkaz na stejný bod pokračování v pracovním postupu. |
Equals(Object) |
Určuje, zda aktuální Bookmark a zadaný objekt odkazují na stejný bod pokračování v pracovním postupu. |
GetHashCode() |
Vrátí jedinečný identifikátor pro tuto Bookmark instanci. |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí název záložky pro pojmenovanou záložku nebo ID záložky pro nepojmenovanou záložku. |