zoukankan      html  css  js  c++  java
  • 放假归来

    上周请假回家一趟,休假期间,VS2005 CTP版本发布、ShadowFax新版本发布(终于有了完整的MSI安装包)、ASP.NET Forums 2.0 Beta RC1发布(同样是一个完整的安装程序包)。

    走之前,匆忙将以前的一个通过WebService上传文件到服务器的WinForms程序添加了多线程上传的能力。

    .Net Framework对多线程有非常良好的支持。而对于WebService,内置的异步调用方式让我们能相对轻松的加入同时调用多个WebService实例方法的能力。WebService对于异步调用有两种处理方式,一是在调用Begin方法时给它一个CallBack函数,在WebService返回时会自动调用这个CallBack方法,二是利用WaitHandle类让客户端当前线程等待WebService返回。

    我是采用的相对简单的第二种方式,同时创建多个WebService代理对象,然后调用它们的Begin方法,利用WaitHandle的static方法WaitAll(),让客户端当前线程等待到这些WebService方法全部返回为止。

    今天回公司就发现了上周匆忙写就的程序有Bug,因为客户端程序在上传前会动态压缩传输的数据,而服务器上动态解压和接受多个WebService调用的协调处理未能和客户端保持一致,导致了出错。这充分证明了一个准则:

    对于多线程同时调用的程序来说,复杂的不是客户端代码,而是接受调用的服务器端代码。
  • 相关阅读:
    springboot模板
    springboot入门
    java自定义注解
    git集成idea
    git的搭建和使用
    Shiro授权
    shiro认证
    shiro入门
    springmvc文件上传
    springmvc入门
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2436741.html
Copyright © 2011-2022 走看看