本帖最后由 gcwangbing 于 2012-12-18 13:52:17 编辑

解决方案 »

  1.   

    所谓消息池是概念,一般用一个队列来实现即可。
    一端不停的做入队操作,另一端用一个独立线程做‘处理工作’。如果入队有多个线程,注意加锁。类似的:http://www.iihtml.com/?p=87
      

  2.   

    Quote: 引用 2 楼 HeddaZ 的回复:

    所谓消息池是概念,一般用一个队列来实现即可。
    一端不停的做入队操作,另一端用一个独立线程做‘处理工作’。如果入队有多个线程,注意加锁。可否写一个例子么?我第一次写winform程序,对线程还不是很了解,可以帮我写一个简单的例子么?消息放在列队里,另一个线程去处理列队的消息,处理完一个就删一个
      

  3.   

    http://www.csharpwin.com/csharpspace/8943r4265.shtml
    线程池,希望能帮到你。
      

  4.   

    目前
    第一个线程来添加信息,向ArrayList的尾部添加信息mutex.WaitOne();
    存储到ArrayList里,
    mutex.ReleaseMutex();第二个线程来处理消息,处理完删除ArrayList里的第一条数据这是是一个死循环

    mutex.WaitOne();
    处理ArrayList的第一条消息
    删除第一条消息
    mutex.ReleaseMutex();
    }现在不知道是那里的问题,程序会没有错误提示的就退出去了。好像是内存异常出错。有可能是爆出,是不是2个线程加锁不对?
      

  5.   


    这里面的第一个例子,希望对你有所帮助:
    http://www.cnblogs.com/wenjl520/archive/2010/01/07/1641308.html
      

  6.   

    谢谢,现在出现了一个错误消息,会导致我的winform自动退出没有错误提示,经过网上查询找到捕获错误的方法了。结果错误是2012/12/21 10:03:27发生系统异常。
    System.Net.WebException: 操作超时
       在 Top.Api.DefaultTopClient.Execute[T](ITopRequest`1 request, String session, DateTime timestamp) 位置 F:\StartService\StartService\api\DefaultTopClient.cs:行号 110
       在 Top.Api.DefaultTopClient.Execute[T](ITopRequest`1 request, String session) 位置 F:\StartService\StartService\api\DefaultTopClient.cs:行号 92
       在 StartService.Initiative.TaoBao.Whether_Evaluation(String Tid, String NiCheng, String SKey, String pjType) 位置 F:\StartService\StartService\Initiative\TaoBao.cs:行号 63
       在 StartService.Initiative.mySql.StartInitiativeTid() 位置 F:\StartService\StartService\Initiative\mySql.cs:行号 49
       在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       在 System.Threading.ThreadHelper.ThreadStart()
    不知所措了。程序上没有问题,
      

  7.   

    1个线程向ArrayList的尾部添加数据,1个线程向ArrayList的头部获得数据并且删除头部数据,
    这2个线程可以同时进行对ArrayList的操作么?
      

  8.   

    winform老是运行一段时间后自动退出。请问怎么回事啊。最后捕获的错误是,
    出错:System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 110.75.127.48:443
       在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
       在 System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
       在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
       --- 内部异常堆栈跟踪的结尾 ---
       在 Top.Api.DefaultTopClient.Execute[T](ITopRequest`1 request, String session, DateTime timestamp)
       在 Top.Api.DefaultTopClient.Execute[T](ITopRequest`1 request, String session)
       在 StartService.Initiative.TaoBao.setPingJia(String NiCheng, String SKey, String DanHao, String PingLun)