PowerSNMP for .NET
ThreadStart Delegate
ExampleExample 




A new SnmpSocket used to send/receive messages.
The state argument from Manager.Start().
Represents the method that will be called on a new worker thread.
Syntax
Public Delegate Sub ThreadStart( _
   ByVal socket As SnmpSocket, _
   ByVal state As Object _
) 
Dim instance As New ThreadStart(AddressOf HandlerMethod)
public delegate void ThreadStart( 
   SnmpSocket socket,
   object state
)
public: __gc __delegate void ThreadStart( 
   SnmpSocket* socket,
   Object* state
)
public delegate void ThreadStart( 
   SnmpSocket^ socket,
   Object^ state
)

Parameters

socket
A new SnmpSocket used to send/receive messages.
state
The state argument from Manager.Start().
Example
The following example demonstrates sending an SNMPv1 Get request to an agent and receiving the response.
private void button1_Click(object sender, EventArgs e)
{
    //Create and send request on a worker thread
    manager1.Start(manager1_SendGetRequest, manager1.Mib.CreateVariable(NodeName.sysContact));
}

private void button2_Click(object sender, EventArgs e)
{
    //If you don't have the MIB, retrieve the value by IID:
    manager1.Start(manager1_SendGetRequest, new Variable("1.3.6.1.2.1.1.4.0"));
}

private void manager1_SendGetRequest(SnmpSocket managerSocket, object state)
{
    //Create Get Request
    GetMessage request = new GetMessage();
    request.Variables.Add(state as Variable);

    //Send request and get response
    ResponseMessage response = managerSocket.GetResponse(request, myAgentAddress);

    //Marshal response to the UI thread using the Message event
    manager1.Marshal(new ResponseMessage[] { response }, "", null);
}

private void manager1_Message(object sender, MessageEventArgs e)
{
    //Display info about the first variable in the response, and its value
    Variable vari = e.Messages[0].Variables[0];
    label1.Text += vari.Definition.ToString() + vari.Value.ToString() + "\r\n";
}
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    'Create and send request on a worker thread
    manager1.Start(AddressOf manager1_SendGetRequest, manager1.Mib.CreateVariable(NodeName.sysContact))
End Sub

Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs)
    'If you don't have the MIB, retrieve the value by IID:
    manager1.Start(AddressOf manager1_SendGetRequest, New Variable("1.3.6.1.2.1.1.4.0"))
End Sub

Private Sub manager1_SendGetRequest(ByVal managerSocket As SnmpSocket, ByVal state As Object)
    'Create Get Request
    Dim request As New GetMessage()
    request.Variables.Add(TryCast(state, Variable))

    'Send request and get response
    Dim response As ResponseMessage = managerSocket.GetResponse(request, myAgentAddress)

    'Marshal response to the UI thread using the Message event
    manager1.Marshal(New ResponseMessage() { response }, "", Nothing)
End Sub

Private Sub manager1_Message(ByVal sender As Object, ByVal e As MessageEventArgs)
    'Display info about the first variable in the response, and its value
    Dim vari As Variable = e.Messages(0).Variables(0)
    label1.Text &= vari.Definition.ToString() & vari.Value.ToString() & vbCrLf
End Sub
See Also

Reference

ThreadStart Members
Dart.Snmp Namespace

6.1.1.2
PowerSNMP for .NET Documentation Version 7.0
© 2023 Dart Communications. All Rights Reserved.
Send comments on this topic