Bookmark Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Azt a pontot jelöli, ahol egy munkafolyamat vagy tevékenység passzívan várhat a folytatásra.
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)
- Öröklődés
-
Bookmark
- Attribútumok
- Megvalósítás
Példák
Az alábbi példában létrejön egy ReadLine tevékenység. A végrehajtáskor a ReadLine tevékenység létrehoz egy Bookmark, regisztrál egy visszahívást, majd megvárja a Bookmark folytatását. A folytatáskor a ReadLine tevékenység hozzárendeli azokat az adatokat, amelyeket az Bookmark által továbbított Result argumentumnak.
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);
}
}
Az alábbi példában létrejön egy munkafolyamat, amely a ReadLine tevékenység használatával gyűjti össze a felhasználó nevét, és megjeleníti azt a konzolablakban. A gazdaalkalmazás elvégzi a bemeneti adatok gyűjtésének tényleges munkáját, és átadja azt a munkafolyamatnak a Bookmarkfolytatással.
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();
ReadLine A tevékenység végrehajtásakor létrehoz egy `Bookmark` nevű `UserName`-t, majd megvárja a könyvjelző folytatását. A kiszolgáló összegyűjti a kívánt adatokat, majd folytatja a Bookmark. A munkafolyamat folytatódik, megjeleníti a nevet, majd befejeződik. Vegye figyelembe, hogy a könyvjelző újbóli használatához nincs szükség szinkronizálási kódra. A Bookmark csak akkor folytatható, ha a munkafolyamat tétlen. Amennyiben a munkafolyamat nem tétlen, a ResumeBookmark hívás blokkolódik, amíg a munkafolyamat tétlenné nem válik.
Megjegyzések
Amikor egy tevékenység létrehoz egy Bookmarktevékenységet, tétlenné válik, és megvárja a Bookmark folytatást. Ha a tevékenységet létrehozó Bookmarktevékenységgel párhuzamosan más tevékenységek is vannak, azok végrehajtásra lesznek ütemezve.
A könyvjelzőket a gazdaalkalmazás az egyik ResumeBookmark túlterheléssel folytathatja.
A könyvjelzőkről további információt a WorkflowInvoker és a WorkflowApplication és a Könyvjelzők használata című témakörben talál.
Konstruktorok
| Name | Description |
|---|---|
| Bookmark(String) |
Inicializálja az Bookmark osztály új példányát a megadott névvel. |
Tulajdonságok
| Name | Description |
|---|---|
| Name |
Lekéri a könyvjelző nevét. |
Metódusok
| Name | Description |
|---|---|
| Equals(Bookmark) |
Meghatározza, hogy az aktuális Bookmark és a megadott Bookmark hivatkozás ugyanarra a folytatási pontra hivatkozik-e egy munkafolyamatban. |
| Equals(Object) |
Meghatározza, hogy az aktuális Bookmark és a megadott objektum ugyanarra a folytatási pontra hivatkozik-e egy munkafolyamatban. |
| GetHashCode() |
Egyedi azonosítót ad vissza ehhez a Bookmark példányhoz. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Egy elnevezett könyvjelző vagy egy névtelen könyvjelző könyvjelző-azonosítójának nevét adja vissza. |