Bookmark 클래스

정의

워크플로 또는 작업이 다시 시작할 때까지 수동적으로 대기할 수 있는 지점을 나타냅니다.Represents a point at which a workflow or activity can passively wait to be resumed.

public ref class Bookmark : IEquatable<System::Activities::Bookmark ^>
[System.Runtime.Serialization.DataContract]
public class Bookmark : IEquatable<System.Activities.Bookmark>
type Bookmark = class
    interface IEquatable<Bookmark>
Public Class Bookmark
Implements IEquatable(Of Bookmark)
상속
Bookmark
특성
구현

예제

다음 예제에서는 ReadLine 활동을 만듭니다.In the following example, a ReadLine activity is created. ReadLine 활동이 실행되면 Bookmark를 만들고 콜백을 등록한 다음 Bookmark가 다시 시작될 때까지 기다립니다.When executed, the ReadLine activity creates a Bookmark, registers a callback, and then waits for the Bookmark to be resumed. 책갈피가 다시 시작되면 ReadLine 활동은 Bookmark와 함께 전달된 데이터를 해당 Result 인수에 할당합니다.When it is resumed, the ReadLine activity assigns the data that was passed with the Bookmark to its Result argument.

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

다음 예제에서는 워크플로가 만들어질를 사용 하는 ReadLine 사용자 이름을 수집 하 여 콘솔 창에 표시 하는 작업입니다.In the following example, a workflow is created that uses the ReadLine activity to gather the user's name and display it to the console window. 호스트 애플리케이션에서는 실제로 입력을 수집하는 작업을 수행하고 Bookmark를 다시 시작하여 이를 워크플로에 전달합니다.The host application performs the actual work of gathering the input and passes it to the workflow by resuming the 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();  

ReadLine 활동이 실행되면 Bookmark이라는 UserName를 만든 다음 책갈피가 다시 시작될 때까지 기다립니다.When the ReadLine activity is executed, it creates a Bookmark named UserName and then waits for the bookmark to be resumed. 호스트는 원하는 데이터를 수집한 다음 Bookmark를 다시 시작합니다.The host collects the desired data and then resumes the Bookmark. 워크플로가 다시 시작되고 이름을 표시한 다음 완료됩니다.The workflow resumes, displays the name, and then completes. 책갈피를 다시 시작하는 데는 동기화 코드가 필요 없습니다.Note that no synchronization code is required with regard to resuming the bookmark. 워크플로가 유휴 상태일 때만 Bookmark를 다시 시작할 수 있습니다. 워크플로가 유휴 상태가 아닌 경우 워크플로가 유휴 상태가 될 때까지 ResumeBookmark에 대한 호출이 차단됩니다.A Bookmark can only be resumed when the workflow is idle, and if the workflow is not idle, the call to ResumeBookmark blocks until the workflow becomes idle.

설명

활동에서 Bookmark를 만들면 유휴 상태가 되고 Bookmark가 다시 시작될 때까지 기다립니다.When an activity creates a Bookmark, it becomes idle and waits for the Bookmark to be resumed. Bookmark를 만든 활동과 병렬 관계인 다른 활동이 있는 경우 실행이 예약됩니다.If there are other activities in parallel with the activity that created the Bookmark, they will be scheduled for execution.

ResumeBookmark 오버로드 중 하나를 사용하여 호스트 애플리케이션을 통해 책갈피를 다시 시작할 수 있습니다.Bookmarks can be resumed by the host application using one of the ResumeBookmark overloads.

책갈피에 대 한 자세한 내용은 참조 하세요. 를 사용 하 여 WorkflowInvoker 및 WorkflowApplication책갈피, 및 책갈피 [ WF 샘플] 하 고 입력 작업에 대 한 대기 [WF 샘플] 샘플입니다.For more information about bookmarks, see Using WorkflowInvoker and WorkflowApplication, Bookmarks, and the Bookmarks [ WF Samples] and Wait For Input Activity [WF Samples] samples.

생성자

Bookmark(String)

지정한 이름을 사용하여 Bookmark 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Bookmark class using the specified name.

속성

Name

책갈피 이름을 가져옵니다.Gets the bookmark name.

메서드

Equals(Bookmark)

현재 Bookmark와 지정한 Bookmark가 워크플로에서 동일한 연속 지점을 참조하는지 여부를 결정합니다.Determines whether the current Bookmark and the specified Bookmark refer to the same continuation point in a workflow.

Equals(Object)

현재 Bookmark와 지정한 개체가 워크플로에서 동일한 연속 지점을 참조하는지 여부를 결정합니다.Determines whether the current Bookmark and the specified object refer to the same continuation point in a workflow.

GetHashCode()

Bookmark 인스턴스의 고유 식별자를 반환합니다.Returns a unique identifier for this Bookmark instance.

GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

명명된 책갈피의 책갈피 이름 또는 명명되지 않은 책갈피의 책갈피 ID를 반환합니다.Returns the bookmark name for a named bookmark or the bookmark ID for an unnamed bookmark.

적용 대상