At first look I think setText() method is your bottleneck.
Try using
BeginInvoke
instead of
Invoke
.
this.OutBox
is a TextBox?
Try:
this.OutBox.AppendText("\r\n" + array[1].ToString());
instead of:
this.Outbox.Text = this.Outbox.Text + "\r\n" + array[1].ToString();
I'm not familiar with USBHIDDRIVER library, but I would change
myEventCatcher
to do all it's work under a single lock:
public void myEventCatcher(object sender,System.EventArgs e){
if (USBHIDDRIVER.USBInterface.usbBuffer.Count > 0){
byte[] currentRecord = new byte[64];
int counter = 0;
lock (USBHIDDRIVER.USBInterface.usbBuffer.SyncRoot){
while ((byte[])USBHIDDRIVER.USBInterface.usbBuffer[counter] == null){
USBHIDDRIVER.USBInterface.usbBuffer.RemoveAt(0);
}
currentRecord = (byte[])USBHIDDRIVER.USBInterface.usbBuffer[0];
USBHIDDRIVER.USBInterface.usbBuffer.RemoveAt(0);
}
setText(currentRecord);
}
}