private void Read()
{
try
{
while (ReaderRunning)
{
byte[] buffer = new byte[1000];
int length = OscPacketIO.ReceivePacket(buffer);
//Debug.Log("received packed of len=" + length);
if (length > 0)
{
ArrayList messages = Osc.PacketToOscMessages(buffer, length);
foreach (OscMessage om in messages)
{
if (AllMessageHandler != null)
AllMessageHandler(om);
OscMessageHandler h = (OscMessageHandler)Hashtable.Synchronized(AddressTable)[om.Address];
if (h != null)
h(om);
}
}
else
Thread.Sleep(20);
}
}
catch (Exception e)
{
//Debug.Log("ThreadAbortException"+e);
}
finally
{
//Debug.Log("terminating thread - clearing handlers");
//Cancel();
//Hashtable.Synchronized(AddressTable).Clear();
}
}