IdeaBlade DevForce 2010 Help Reference
Start(IEnumerable<Func<INotifyCompleted>>,Action<CoroutineOperation>) Method
See Also  Example Send Feedback
IdeaBlade.EntityModel Assembly > IdeaBlade.EntityModel Namespace > Coroutine Class > Start Method : Start(IEnumerable<Func<INotifyCompleted>>,Action<CoroutineOperation>) Method



asyncFns
List of asynchronous functions
completedHandler
Optional completion handle
Start serial execution of multiple asynchronous actions.

Syntax

Visual Basic (Declaration) 
Public Overloads Shared Function Start( _
   ByVal asyncFns As IEnumerable(Of Func(Of INotifyCompleted)), _
   Optional ByVal completedHandler As Action(Of CoroutineOperation) _
) As CoroutineOperation
Visual Basic (Usage)Copy Code
Dim asyncFns As IEnumerable(Of Func(Of INotifyCompleted))
Dim completedHandler As Action(Of CoroutineOperation)
Dim value As CoroutineOperation
 
value = Coroutine.Start(asyncFns, completedHandler)

Parameters

asyncFns
List of asynchronous functions
completedHandler
Optional completion handle

Return Value

A CoroutineOperation representing this operation

Example

C#Copy Code
public void CoroutineSample3() {
  Coroutine.Start(Sample3Actions(_entityManager), (op) => {
    MessageBox.Show(op.Result.ToString());
  });
}

private IEnumerable<Func<INotifyCompleted>> Sample3Actions(DomainModelEntityManager mgr) {
  // Not an iterator block - this returns a list of async actions

  yield return () => mgr.Customers.ExecuteAsync();
  yield return () => mgr.Employees.ExecuteAsync();
  yield return () => Coroutine.Return("all done");
}
Visual BasicCopy Code
Public Sub CoroutineSample3()
    Coroutine.Start(Sample3Actions(Manager),
        Sub(op As CoroutineOperation)
            MessageBox.Show(op.Result.ToString())
        End Sub)
End Sub

Private Function Sample3Actions(ByVal mgr As NorthwindIBEntities) As IEnumerable(Of Func(Of INotifyCompleted))
    ' Setup of the list of async functions for the Coroutine to execute serially.
    Dim operationList = New List(Of Func(Of INotifyCompleted))

    Dim f1 As Func(Of INotifyCompleted) = Function() mgr.Customers.ExecuteAsync()
    operationList.Add(f1)

    Dim f2 As Func(Of INotifyCompleted) = Function() mgr.Employees.ExecuteAsync()
    operationList.Add(f2)

    Dim f3 As Func(Of INotifyCompleted) = Function() Coroutine.Return("all done")
    operationList.Add(f3)

    Return operationList
End Function

Remarks

Used to start serial execution of a list of asynchronous actions. Instead of passing an iterator block, pass an IEnumerable of the asynchronous functions to be executed. Asynchronous functions in the list will be executed serially.

This overload of the Start method is useful in Visual Basic, where iterators are not supported.

Requirements

Target Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Windows Vista, Windows Server 2008 family

See Also

© 2013 All Rights Reserved.