WorkflowInvoker.BeginInvoke Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Zaman uyumsuz tasarım desenini IAsyncResult kullanarak bir iş akışını zaman uyumsuz olarak çağırır.
Aşırı Yüklemeler
BeginInvoke(AsyncCallback, Object) |
Belirtilen AsyncCallback ve kullanıcı tarafından sağlanan durumu kullanarak bir iş akışını zaman uyumsuz olarak çağırır. |
BeginInvoke(IDictionary<String,Object>, AsyncCallback, Object) |
Belirtilen IDictionary<TKey,TValue> giriş parametrelerini, AsyncCallbackve kullanıcı tarafından sağlanan durumu kullanarak bir iş akışını zaman uyumsuz olarak çağırır. |
BeginInvoke(TimeSpan, AsyncCallback, Object) |
Belirtilen zaman aşımı aralığı, AsyncCallbackve kullanıcı tarafından sağlanan durumu kullanarak bir iş akışını zaman uyumsuz olarak çağırır. |
BeginInvoke(IDictionary<String,Object>, TimeSpan, AsyncCallback, Object) |
Belirtilen IDictionary<TKey,TValue> giriş parametrelerini, zaman aşımı aralığını AsyncCallbackve kullanıcı tarafından sağlanan durumu kullanarak bir iş akışını zaman uyumsuz olarak çağırır. |
Açıklamalar
Daha fazla bilgi için bkz. Zaman Uyumsuz Programlamaya Genel Bakış.
BeginInvoke(AsyncCallback, Object)
Belirtilen AsyncCallback ve kullanıcı tarafından sağlanan durumu kullanarak bir iş akışını zaman uyumsuz olarak çağırır.
public:
IAsyncResult ^ BeginInvoke(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginInvoke (AsyncCallback callback, object state);
member this.BeginInvoke : AsyncCallback * obj -> IAsyncResult
Public Function BeginInvoke (callback As AsyncCallback, state As Object) As IAsyncResult
Parametreler
- callback
- AsyncCallback
İş akışı tamamlandığında çağrılacak yöntem.
- state
- Object
Zaman uyumsuz işlem hakkında bilgi içeren isteğe bağlı bir uygulamaya özgü nesne.
Döndürülenler
Zaman uyumsuz çağırma işlemine başvuru.
Örnekler
Aşağıdaki örnek, bir etkinlik içeren LongRunningDiceRoll
bir iş akışını çağırır. Etkinlikte LongRunningDiceRoll
zar atma işleminin sonuçlarını temsil eden iki çıkış bağımsız değişkeni vardır. Bunlar çağrılarak EndInvokealınır. çağrısı EndInvoke döndürdüğünde, her çıkış bağımsız değişkeni, bağımsız değişken adıyla anahtarlanan çıkış sözlüğünde döndürülür.
public sealed class LongRunningDiceRoll : Activity
{
public OutArgument<int> D1 { get; set; }
public OutArgument<int> D2 { get; set; }
public LongRunningDiceRoll()
{
this.Implementation = () => new Sequence
{
Activities =
{
new WriteLine
{
Text = "Rolling the dice for 5 seconds."
},
new Delay
{
Duration = TimeSpan.FromSeconds(5)
},
new DiceRoll
{
D1 = new OutArgument<int>(env => this.D1.Get(env)),
D2 = new OutArgument<int>(env => this.D2.Get(env))
}
}
};
}
}
static void BeginInvokeExample()
{
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
string userState = "BeginInvoke example";
IAsyncResult result = invoker.BeginInvoke(new AsyncCallback(WorkflowCompletedCallback), userState);
// You can inspect result from the host to determine if the workflow
// is complete.
Console.WriteLine("result.IsCompleted: {0}", result.IsCompleted);
// The results of the workflow are retrieved by calling EndInvoke, which
// can be called from the callback or from the host. If called from the
// host, it blocks until the workflow completes. If a callback is not
// required, pass null for the callback parameter.
Console.WriteLine("Waiting for the workflow to complete.");
IDictionary<string, object> outputs = invoker.EndInvoke(result);
Console.WriteLine("The two dice are {0} and {1}.",
outputs["D1"], outputs["D2"]);
}
static void WorkflowCompletedCallback(IAsyncResult result)
{
Console.WriteLine("Workflow complete.");
}
Açıklamalar
İş akışı tamamlandığında bildirim almak ve iş akışının çıkış parametrelerini almak için yönteminden çağrısında EndInvoke bulunun callback
. İş akışı tamamlanmadan önce çağrılırsa EndInvoke , iş akışı tamamlanana kadar engeller. İş akışının tamamlanması gereken bir zaman aşımı aralığı yapılandırmak için, kullanan aşırı yüklemelerden TimeSpanbirini BeginInvoke kullanın.
Bu yöntem, zaman uyumsuz tasarım desenini IAsyncResult kullanarak bir iş akışını zaman uyumsuz olarak çağırır. Daha fazla bilgi için bkz. Zaman Uyumsuz Programlamaya Genel Bakış.
Şunlara uygulanır
BeginInvoke(IDictionary<String,Object>, AsyncCallback, Object)
Belirtilen IDictionary<TKey,TValue> giriş parametrelerini, AsyncCallbackve kullanıcı tarafından sağlanan durumu kullanarak bir iş akışını zaman uyumsuz olarak çağırır.
public:
IAsyncResult ^ BeginInvoke(System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ inputs, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginInvoke (System.Collections.Generic.IDictionary<string,object> inputs, AsyncCallback callback, object state);
member this.BeginInvoke : System.Collections.Generic.IDictionary<string, obj> * AsyncCallback * obj -> IAsyncResult
Public Function BeginInvoke (inputs As IDictionary(Of String, Object), callback As AsyncCallback, state As Object) As IAsyncResult
Parametreler
- inputs
- IDictionary<String,Object>
Bağımsız değişken adıyla anahtarlanan, iş akışına giriş parametrelerinin sözlüğü.
- callback
- AsyncCallback
İş akışı tamamlandığında çağrılacak yöntem.
- state
- Object
Zaman uyumsuz işlem hakkında bilgi içeren isteğe bağlı bir uygulamaya özgü nesne.
Döndürülenler
Zaman uyumsuz çağırma işlemine başvuru.
Örnekler
Aşağıdaki örnek, bir etkinlik içeren LongRunningDiceRoll
bir iş akışını çağırır. Etkinlikte LongRunningDiceRoll
zar atma işleminin sonuçlarını temsil eden iki çıkış bağımsız değişkeni vardır. Bunlar çağrılarak EndInvokealınır. çağrısı EndInvoke döndürdüğünde, her çıkış bağımsız değişkeni, bağımsız değişken adıyla anahtarlanan çıkış sözlüğünde döndürülür.
public sealed class LongRunningDiceRoll : Activity
{
public OutArgument<int> D1 { get; set; }
public OutArgument<int> D2 { get; set; }
public LongRunningDiceRoll()
{
this.Implementation = () => new Sequence
{
Activities =
{
new WriteLine
{
Text = "Rolling the dice for 5 seconds."
},
new Delay
{
Duration = TimeSpan.FromSeconds(5)
},
new DiceRoll
{
D1 = new OutArgument<int>(env => this.D1.Get(env)),
D2 = new OutArgument<int>(env => this.D2.Get(env))
}
}
};
}
}
static void BeginInvokeExample()
{
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
string userState = "BeginInvoke example";
IAsyncResult result = invoker.BeginInvoke(new AsyncCallback(WorkflowCompletedCallback), userState);
// You can inspect result from the host to determine if the workflow
// is complete.
Console.WriteLine("result.IsCompleted: {0}", result.IsCompleted);
// The results of the workflow are retrieved by calling EndInvoke, which
// can be called from the callback or from the host. If called from the
// host, it blocks until the workflow completes. If a callback is not
// required, pass null for the callback parameter.
Console.WriteLine("Waiting for the workflow to complete.");
IDictionary<string, object> outputs = invoker.EndInvoke(result);
Console.WriteLine("The two dice are {0} and {1}.",
outputs["D1"], outputs["D2"]);
}
static void WorkflowCompletedCallback(IAsyncResult result)
{
Console.WriteLine("Workflow complete.");
}
Açıklamalar
İş akışı tamamlandığında bildirim almak ve iş akışının çıkış parametrelerini almak için yönteminden çağrısında EndInvoke bulunun callback
. İş akışı tamamlanmadan önce çağrılırsa EndInvoke , iş akışı tamamlanana kadar engeller. İş akışının tamamlanması gereken bir zaman aşımı aralığı yapılandırmak için, kullanan aşırı yüklemelerden TimeSpanbirini BeginInvoke kullanın.
Bu yöntem, zaman uyumsuz tasarım desenini IAsyncResult kullanarak bir iş akışını zaman uyumsuz olarak çağırır. Daha fazla bilgi için bkz. Zaman Uyumsuz Programlamaya Genel Bakış.
Şunlara uygulanır
BeginInvoke(TimeSpan, AsyncCallback, Object)
Belirtilen zaman aşımı aralığı, AsyncCallbackve kullanıcı tarafından sağlanan durumu kullanarak bir iş akışını zaman uyumsuz olarak çağırır.
public:
IAsyncResult ^ BeginInvoke(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginInvoke (TimeSpan timeout, AsyncCallback callback, object state);
member this.BeginInvoke : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginInvoke (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Parametreler
- timeout
- TimeSpan
İş akışının durdurulmadan ve bir TimeoutException oluşmadan önce tamamlanması gereken aralık.
- callback
- AsyncCallback
İş akışı tamamlandığında çağrılacak yöntem.
- state
- Object
Zaman uyumsuz işlem hakkında bilgi içeren isteğe bağlı bir uygulamaya özgü nesne.
Döndürülenler
Zaman uyumsuz çağırma işlemine başvuru.
Örnekler
Aşağıdaki örnek, bir etkinlik içeren LongRunningDiceRoll
bir iş akışını çağırır. Etkinlikte LongRunningDiceRoll
zar atma işleminin sonuçlarını temsil eden iki çıkış bağımsız değişkeni vardır. Bunlar çağrılarak EndInvokealınır. çağrısı EndInvoke döndürdüğünde, her çıkış bağımsız değişkeni, bağımsız değişken adıyla anahtarlanan çıkış sözlüğünde döndürülür.
public sealed class LongRunningDiceRoll : Activity
{
public OutArgument<int> D1 { get; set; }
public OutArgument<int> D2 { get; set; }
public LongRunningDiceRoll()
{
this.Implementation = () => new Sequence
{
Activities =
{
new WriteLine
{
Text = "Rolling the dice for 5 seconds."
},
new Delay
{
Duration = TimeSpan.FromSeconds(5)
},
new DiceRoll
{
D1 = new OutArgument<int>(env => this.D1.Get(env)),
D2 = new OutArgument<int>(env => this.D2.Get(env))
}
}
};
}
}
static void BeginInvokeExample()
{
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
string userState = "BeginInvoke example";
IAsyncResult result = invoker.BeginInvoke(new AsyncCallback(WorkflowCompletedCallback), userState);
// You can inspect result from the host to determine if the workflow
// is complete.
Console.WriteLine("result.IsCompleted: {0}", result.IsCompleted);
// The results of the workflow are retrieved by calling EndInvoke, which
// can be called from the callback or from the host. If called from the
// host, it blocks until the workflow completes. If a callback is not
// required, pass null for the callback parameter.
Console.WriteLine("Waiting for the workflow to complete.");
IDictionary<string, object> outputs = invoker.EndInvoke(result);
Console.WriteLine("The two dice are {0} and {1}.",
outputs["D1"], outputs["D2"]);
}
static void WorkflowCompletedCallback(IAsyncResult result)
{
Console.WriteLine("Workflow complete.");
}
Açıklamalar
İş akışı tamamlandığında bildirim almak ve iş akışının çıkış parametrelerini almak için yönteminden çağrısında EndInvoke bulunun callback
. İş akışı tamamlanmadan önce çağrılırsa EndInvoke , iş akışı tamamlanana kadar engeller. İş akışı belirtilen zaman aşımı aralığı içinde tamamlanmazsa iş akışı durdurulup yöntem çağrıldığında EndInvoke oluşturulurTimeoutException.
Not
TimeoutException yalnızca zaman aşımı aralığı geçtiğinde ve iş akışı yürütme sırasında boşta olduğunda oluşturulur. İş akışı boşta kalmazsa, tamamlanması belirtilen zaman aşımı aralığından daha uzun süren bir iş akışı başarıyla tamamlanır.
Bu yöntem, zaman uyumsuz tasarım desenini IAsyncResult kullanarak bir iş akışını zaman uyumsuz olarak çağırır. Daha fazla bilgi için bkz. Zaman Uyumsuz Programlamaya Genel Bakış.
Şunlara uygulanır
BeginInvoke(IDictionary<String,Object>, TimeSpan, AsyncCallback, Object)
Belirtilen IDictionary<TKey,TValue> giriş parametrelerini, zaman aşımı aralığını AsyncCallbackve kullanıcı tarafından sağlanan durumu kullanarak bir iş akışını zaman uyumsuz olarak çağırır.
public:
IAsyncResult ^ BeginInvoke(System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ inputs, TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginInvoke (System.Collections.Generic.IDictionary<string,object> inputs, TimeSpan timeout, AsyncCallback callback, object state);
member this.BeginInvoke : System.Collections.Generic.IDictionary<string, obj> * TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginInvoke (inputs As IDictionary(Of String, Object), timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Parametreler
- inputs
- IDictionary<String,Object>
Bağımsız değişken adıyla anahtarlanan, iş akışına giriş parametrelerinin sözlüğü.
- timeout
- TimeSpan
İş akışının durdurulmadan ve bir TimeoutException oluşmadan önce tamamlanması gereken aralık.
- callback
- AsyncCallback
İş akışı tamamlandığında çağrılacak yöntem.
- state
- Object
Zaman uyumsuz işlem hakkında bilgi içeren isteğe bağlı bir uygulamaya özgü nesne.
Döndürülenler
Zaman uyumsuz çağırma işlemine başvuru.
Örnekler
Aşağıdaki örnek, bir etkinlik içeren LongRunningDiceRoll
bir iş akışını çağırır. Etkinlikte LongRunningDiceRoll
zar atma işleminin sonuçlarını temsil eden iki çıkış bağımsız değişkeni vardır. Bunlar çağrılarak EndInvokealınır. çağrısı EndInvoke döndürdüğünde, her çıkış bağımsız değişkeni, bağımsız değişken adıyla anahtarlanan çıkış sözlüğünde döndürülür.
public sealed class LongRunningDiceRoll : Activity
{
public OutArgument<int> D1 { get; set; }
public OutArgument<int> D2 { get; set; }
public LongRunningDiceRoll()
{
this.Implementation = () => new Sequence
{
Activities =
{
new WriteLine
{
Text = "Rolling the dice for 5 seconds."
},
new Delay
{
Duration = TimeSpan.FromSeconds(5)
},
new DiceRoll
{
D1 = new OutArgument<int>(env => this.D1.Get(env)),
D2 = new OutArgument<int>(env => this.D2.Get(env))
}
}
};
}
}
static void BeginInvokeExample()
{
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
string userState = "BeginInvoke example";
IAsyncResult result = invoker.BeginInvoke(new AsyncCallback(WorkflowCompletedCallback), userState);
// You can inspect result from the host to determine if the workflow
// is complete.
Console.WriteLine("result.IsCompleted: {0}", result.IsCompleted);
// The results of the workflow are retrieved by calling EndInvoke, which
// can be called from the callback or from the host. If called from the
// host, it blocks until the workflow completes. If a callback is not
// required, pass null for the callback parameter.
Console.WriteLine("Waiting for the workflow to complete.");
IDictionary<string, object> outputs = invoker.EndInvoke(result);
Console.WriteLine("The two dice are {0} and {1}.",
outputs["D1"], outputs["D2"]);
}
static void WorkflowCompletedCallback(IAsyncResult result)
{
Console.WriteLine("Workflow complete.");
}
Açıklamalar
İş akışı tamamlandığında bildirim almak ve iş akışının çıkış parametrelerini almak için yönteminden çağrısında EndInvoke bulunun callback
. İş akışı tamamlanmadan önce çağrılırsa EndInvoke , iş akışı tamamlanana kadar engeller. İş akışı belirtilen zaman aşımı aralığı içinde tamamlanmazsa iş akışı durdurulup çağrıldığında EndInvoke oluşturulurTimeoutException.
Not
TimeoutException yalnızca zaman aşımı aralığı geçtiğinde ve iş akışı yürütme sırasında boşta olduğunda oluşturulur. İş akışı boşta kalmazsa, tamamlanması belirtilen zaman aşımı aralığından daha uzun süren bir iş akışı başarıyla tamamlanır.
Bu yöntem, zaman uyumsuz tasarım desenini IAsyncResult kullanarak bir iş akışını zaman uyumsuz olarak çağırır. Daha fazla bilgi için bkz. Zaman Uyumsuz Programlamaya Genel Bakış.