Bookmark Kelas

Definisi

Mewakili titik di mana alur kerja atau aktivitas dapat menunggu secara pasif untuk dilanjutkan.

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)
Warisan
Bookmark
Atribut
Penerapan

Contoh

Dalam contoh berikut, ReadLine aktivitas dibuat. Saat dijalankan, aktivitas ReadLine membuat Bookmark, mendaftarkan callback, lalu menunggu Bookmark untuk dilanjutkan. Ketika dilanjutkan, aktivitas ReadLine menetapkan data yang dioper ke Bookmark sebagai argumen Result.

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);
    }
}

Dalam contoh berikut, alur kerja dibuat yang menggunakan ReadLine aktivitas untuk mengumpulkan nama pengguna dan menampilkannya ke jendela konsol. Aplikasi host melakukan pekerjaan aktual untuk mengumpulkan input dan meneruskannya ke alur kerja dengan melanjutkan 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();

Ketika aktivitas ReadLine dijalankan, aktivitas tersebut membuat Bookmark yang bernama UserName dan kemudian menunggu bookmark dilanjutkan. Host mengumpulkan data yang diinginkan dan kemudian melanjutkan Bookmark. Alur kerja dilanjutkan, menampilkan nama, lalu selesai. Perhatikan bahwa sehubungan dengan melanjutkan penanda, tidak diperlukan kode sinkronisasi. Hanya Bookmark dapat dilanjutkan ketika alur kerja berhenti, dan jika alur kerja tidak berhenti, maka panggilan ke ResumeBookmark akan tertahan sampai alur kerja berhenti.

Keterangan

Ketika aktivitas membuat Bookmark, aktivitas menjadi diam dan menunggu Bookmark dilanjutkan. Jika ada aktivitas lain secara paralel dengan aktivitas yang membuat Bookmark, aktivitas tersebut akan dijadwalkan untuk dieksekusi.

Marka buku dapat dilanjutkan oleh aplikasi host menggunakan salah ResumeBookmark satu kelebihan beban.

Untuk informasi selengkapnya tentang marka buku, lihat Menggunakan WorkflowInvoker dan WorkflowApplication dan Bookmarks.

Konstruktor

Nama Deskripsi
Bookmark(String)

Menginisialisasi instans Bookmark baru kelas menggunakan nama yang ditentukan.

Properti

Nama Deskripsi
Name

Mendapatkan nama bookmark.

Metode

Nama Deskripsi
Equals(Bookmark)

Menentukan apakah saat ini Bookmark dan yang ditentukan Bookmark merujuk ke titik kelanjutan yang sama dalam alur kerja.

Equals(Object)

Menentukan apakah objek saat ini Bookmark dan yang ditentukan merujuk ke titik kelanjutan yang sama dalam alur kerja.

GetHashCode()

Mengembalikan pengidentifikasi unik untuk instans ini Bookmark .

GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan nama bookmark untuk bookmark bernama atau ID bookmark untuk bookmark yang tidak disebutkan namanya.

Berlaku untuk