Share via


Bookmark Kelas

Definisi

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

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 panggilan balik, lalu menunggu Bookmark dilanjutkan. Saat dilanjutkan, aktivitas ReadLine menetapkan data yang diteruskan dengan Bookmark ke argumen Result-nya.

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

Saat aktivitas ReadLine dijalankan, Bookmark bernama UserName dibuat dan menunggu marka buku untuk dilanjutkan. Host mengumpulkan data yang diinginkan dan kemudian melanjutkan Bookmark. Alur kerja dilanjutkan, menampilkan nama, lalu selesai. Perhatikan bahwa kode sinkronisasi tidak diperlukan saat melanjutkan marka buku. Bookmark hanya dapat dilanjutkan saat alur kerja menganggur, dan jika alur kerja tidak menganggur, panggilan ke ResumeBookmark akan diblokir hingga alur kerja menjadi menganggur.

Keterangan

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

Bookmark 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

Bookmark(String)

Menginisialisasi instans Bookmark baru kelas menggunakan nama yang ditentukan.

Properti

Name

Mendapatkan nama bookmark.

Metode

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 instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

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

Berlaku untuk