ComponentSpace Trace Route Class Library Reference

TraceRouteClient.BeginTraceRoute Method (String, Object)

Initiates an asynchronous trace route operation that has a specified state object.

[Visual Basic]
Overloads Public Function BeginTraceRoute( _
   ByVal serverAddress As String, _
   ByVal stateObject As Object _
) As IAsyncResult
[C#]
public IAsyncResult BeginTraceRoute(
   string serverAddress,
   object stateObject
);

Parameters

serverAddress
The server to which to trace the route (eg. 66.210.153.10 or www.componentspace.com).
stateObject
A state object, specified by the application, that contains information associated with the asynchronous operation.

Return Value

The IAsyncResult that identifies the posted asynchronous request.

Remarks

In asynchronous processing, you use BeginTraceRoute to raise the TraceRouteCompleted event when the trace route operation has completed.

Use this overload to associate information with the operation that will be preserved throughout the operation's lifetime. The event handler can detect this information by looking at the AsyncState of the IAsyncResult that is associated with the operation.

To use BeginTraceRoute, create an event handler that processes the results of the asynchronous operation and associate it with your event delegate. BeginTraceRoute initiates an asynchronous trace route operation; the TraceRouteClient is notified, through the raising of the TraceRouteCompleted event, when the trace route operation is completed. The TraceRouteClient can then access the trace route status by calling EndTraceRoute.

Note: The BeginTraceRoute method returns immediately, but the asynchronous operation is not completed until the event handler is called.

Because BeginTraceRoute is asynchronous, you can call it to receive the trace route status without blocking the current thread of execution. To synchronously trace route, use the TraceRoute method.

Once an asynchronous operation completes, you can call BeginTraceRoute again in the event handler to keep receiving notifications.

The IAsyncResult that BeginTraceRoute returns indentifies the asynchronous operation that the method call started. You can use this IAsyncResult throughout the lifetime of the operation, although you generally do not use it until EndTraceRoute is called. However, if you start several asynchronous operations, you can place their IAsyncResult values in an array and specify whether to wait for all operations or any operation to complete. In this case, you use the AsyncWaitHandle property of the IAsyncResult to identify the completed operation.

The state object associates state information with the operation. For example, if you call BeginTraceRoute multiple times to initiate multiple operations, you can identify each operation through a separate state object that you define.

You can also use the state object to pass information across process threads. If a thread is started but the callback is on a different thread in an asynchronous scenario, the state object is marshaled and passed back along with information from the event.

See Also

TraceRouteClient Class | ComponentSpace.TraceRoute Namespace | TraceRouteClient.BeginTraceRoute Overload List