Bit of a stumper, took me a while. I noticed that e.Data can be Nothing, never seen that before. The network utilities are, erm, special, Berkeley is an unusual place on planet Earth.
You do have to add the line-ending yourself. Using InvokeRequired is pointless, it always is for the OutputDataReceived event. This version worked fine:
Public Sub proc_OutputDataReceived(ByVal sender As Object, ByVal e As DataReceivedEventArgs)
If e.Data IsNot Nothing Then Me.Invoke(myDelegate, e.Data + vbCrLf)
End Sub
Please use the System.Net.NetworkInformation.Ping class instead. It is not quite as affected by recreational chemical substances.