02 2012 档案
摘要:问题描述:在用foreach遍历hashtable的时候,弹出“集合已修改;可能无法执行枚举操作。”问题代码: private void Check(int TimeOut) //这是一个存活检查线程,为了把连接失效的主机剔除 { DateTime t = DateTime.Now;//取出当前的时间 //Hashtable foreach (DictionaryEntry item in _transmit_tb)//弹出“集合已修改;可能无法执行枚举操作。” { if ((t - (DateTime)Time...
阅读全文
摘要:通过vs2010自带的进程窗口可以很方便地看到,哪一些进程正在运行。以前一直不知道他具体是怎么运作的。现在总算清楚了。黄色的箭头代表当前活动的进程。“进程窗口”不可用的时候,就说明主线程和活动进程都阻塞了。由于我的主线程是用来接收外部的socket连接的,所以阻塞是正常的。但是副进程是用来发送存活命令的,所以阻塞就可能有点原因了。
阅读全文
摘要:从网上的资料判断,调试多线程程序似乎就一下3种方法。1、在日志的某个地方写日志文件。优点:不会干扰程序的执行,特别是对网络的多线程通信。缺点:每次都需要打开日志文件以查看进程运行的信息。2、利用断点进行调试。优点:直观,可以直接看到运行过程的值缺点:在多个线程设置断点,可能让程序跳来跳去,还需要额外地分出一部分精力用来理清程序的逻辑3、利用弹出窗口来查看进程调试的信息。优点;直观缺点;在调试网路通信的时候,使得通信的过程产生延时,导致通信失败。4、利用vs2010自带的线程窗口来调试优点:直观,可以直接从进程图上看到哪个进程是活动进程,哪些进程处于阻塞状态。缺点:需要结合断点调试,基本上...
阅读全文
摘要:原文链接:http://stackoverflow.com/questions/703137/how-to-make-a-value-type-nullable-with-net-xmlserializer留给自己,有空翻译
阅读全文
摘要://///xsd 文档<?xml version="1.0" encoding="utf-8"?><xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="userInput"> <xs:complexType>
阅读全文
摘要:问题描述:为了防止界面卡死,在服务端我新开了一个进程来监听客户端的连接请求,在关闭的时候却却提示“一个封锁操作被对 WSACancelBlockingCall 的调用中断”。如图具体错误代码: private void InitForm() { MyController = new ControllerManager(this); /创建一个新的进程,以防界面卡死 new Thread(MyController.Load).Start(); }注:MyController.Load()里面: Socket newClient = _tcpl....
阅读全文