新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → .Net框架下的Windows的底层访问 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 10188 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: .Net框架下的Windows的底层访问 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 .Net框架下的Windows的底层访问


    发信人: walts (小天堂), 信区: DotNET        
    标  题: .Net框架下的Windows的底层访问
    发信站: BBS 水木清华站 (Tue May 15 13:03:03 2001)


    / *只是关于WinForm下的底层访问其他的还是要慢慢积累

       .Net框架创建下的C#是一个目前真正的面向组件的编程语言。
    而.Net框架提供的对于WinForm,MS在设计中为了达到使开发者
    在使用时有在与使用WebForm编码是相同的舒适感。WinForm变得反而还
    不如MFC更容易访问底层系统。但还是可以访问的,源自WinForm
    下的每一个控件都有一个Handler的属性,允许访问空间的HWND,
    GDI+也提供类似的访问,此外控件具有一个虚拟的WinProc,可
    以重载处理WinForm已经不再支持的消息。
    ---------------------------------------------

    下面是一本杂志上的一个很好的例子:
       假如你的应用程序需要消耗许多资源,而C#的GC机制又有
    滞后效应(具体的看MSDN,SDK),一般大家可以在重载一个
    Dispose()来解决析构函数迟迟不调用的问题,其实还可以对
    WM_COMPACTING作响应,当系统探测到内存紧张时WM_COPMACTING
    将向所有顶级窗口广播。Win_Form框架没有内建对此消息的支持,
    可以实现如下:
    public class CompactableForm:System.WinForms.Form{
      private EventHandler handler;

      public  void AddOnCompacting(EnventHandler h){
         handler=(EventHandler)Delegete.Combine(handler,h);
      }
      public void RemoveOnCompacting(EventHandler h){
          handler=(EventHandler)Delegate.Remove(handler,h);
      }


      protect override void OnCompacting(EventArg e){
        //看看Runtime是否释放一些什么
        System.GC.Collect();
        //调用Add的那些消息处理函数
        if(handler!=null) handler(this,e);

       }

      protect override void WndProc(ref Message m){
        case (m.msg)
        {
          case Win_COMPACTING:
               OnCompacting(EventArgs.Empty);
               break;
        }
        base.WinProc();
      }

    --

    ※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.142.76]
    上一篇
    返回上一页
    回到目录
    回到页首


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/9 2:26:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/3 5:02:12

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    39.063ms