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 pracovní postup nebo aktivita může 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. Při spuštění ReadLine
aktivita vytvoří Bookmark, zaregistruje zpětné volání a pak čeká Bookmark na obnovení. Po obnovení aktivita přiřadí data, ReadLine
která byla předána 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 je vytvořen pracovní postup, který používá ReadLine
aktivitu ke shromáždění jména uživatele a jeho zobrazení v okně konzoly. Hostitelská aplikace provede skutečnou práci při shromažďování vstupu a předá ho pracovnímu postupu obnovením .Bookmark
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í činnost .Bookmark Pracovní postup se obnoví, zobrazí název a dokončí se. Mějte na paměti, že pro obnovení záložky není vyžadován žádný synchronizační kód. A Bookmark lze obnovit pouze v případě, že je pracovní postup nečinný, a pokud pracovní postup není nečinný, volání bloků, ResumeBookmark dokud pracovní postup nebude nečinný.
Poznámky
Když aktivita vytvoří Bookmark, stane se nečinnou a čeká Bookmark na obnovení. Pokud existují paralelně s aktivitou, která vytvořila Bookmark, budou naplánovány jejich spuštění.
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í WorkflowInvoker 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 odkazují 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() |
Type Získá z aktuální instance. (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. |
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro