.NET基础通信模型完工

这么多年来,我VS2010启动需要N+分钟的原因我终于找到了,因为我的卡巴斯基2011-卡巴斯基安全部队。这破烂,幸亏我没买,每次都得给我卡死…本来想尝尝鲜,现在一想还是老老实实的用我的卡巴2010吧。关掉卡巴后VS2010的启动速度很快,点了之后就出来了,看来当初我误解MS了。

以前我曾经用.NET写过网络通信的例子,结果今天一看只剩下半个客户端了,服务端找不到了,还得重来。经过了30分钟的查找资料,终于搞定了。话说我是在CSDN上找了一个C#写的范例,移植到了我的VB.NET上。这年代真不知道为什么C#称王,VB.NET几乎消失。C#的语法可读性那么差,每次还要加上脑残的”;”,感觉用的人真是*&……%¥不累得慌…………

在移植测试的时候,发现范例显示传来数据的时候报错。主要是因为跨线程调用WINDOWS窗体控件,提示不安全。去年我弄这个的时候就曾经遇到过这个问题,当初的解决办法是禁用掉这个警告。也就是:“CheckForIllegalCrossThreadCalls = False”不过这样不是很好。这次我使用了MS提供的方法:

Private Sub SetText(ByVal [text] As String)
‘ InvokeRequired required compares the thread ID of the
‘ calling thread to the thread ID of the creating thread.
‘ If these threads are different, it returns true.
If Me.Label1.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {[text]})
Else
Me.Label1.Text = [text]
End If
End Sub
这个系统非常基本,很多东西都没有涉及到。之后我准备对此进行一下测试,看看是否具备我要求的功能,不排除使用Socket进行通信。

Leave a Reply

Your email address will not be published. Required fields are marked *