About that, and this might also concern everyone about to use this:
If you know what this means, you might have an idea why this is half-good/half-bad; Allow me to explain my fellow mixed raced bretheren:
• Good Reason - The socket will NOT wait for the packet to be displayed/invoked onto the form, this means you will NOT notice any lag in the client.
• Bad Reason - It will absolutely destroy your anus if the packets just keep coming, a continuous non-stop get/invoke/get/invoke system. This will cause the UI to freeze while it's continuously displaying all the packets, to counter this(a bit) you can add Application.DoEvents() at the end of the function that displays the packets to give it some 'breathing room' and allow other stuff to take place, but this 'fix' is barely a fix.
Or you can just remove those 'Task.Factory.StartNew' lambdas, although you will notice some lag when entering a room with large activity since it waits for the packet to be displayed/invoked then begins receiving more.