zoukankan      html  css  js  c++  java
  • [转载]解决多线程中执行CreateHandle()时无法调用值Dispose()

    代码如下:
    namespace Adt850
    {
    public partial class frmMain
    {
    Thread MyThread;
    int val,val1,speed;
    public frmMain()
    {
    initializeComponent();
    CheckforIllegalCrossThreadCalls=false;
    MyThread=new Thread(new ThreadStart(ThreadSet));
    MyThread.Start();
    }
    private void ThreadSet()
    {
    while(true)
    {
    adt850_a.get_command_pos(0,1,out val);//调用dll函数
    txtGetLocationX.Text=Convert.ToString((float)5*val/300);
    adt850_a.get_command_pos(0,2,out val1);
    txtGetLocationY.Text=Convert.ToString((float)5*val1/300);
    adt850_a.get_speed(0,1,out speed);
    txtGetSpeed.Text=Convert.ToString(speed);
    }
    }
    }
    }

    在退出程序时,会发生objectDisposeException异常
    和执行CreateHandle()时无法调用值Dispose()的错误

    是什么原因???
     
    解决办法:
    窗口在要关闭时你的线程却还没有退出是吧?这样不行.将线程设置成isBackground=true;然后在窗口关闭时调用线程的中断执行函数.或在While中加上检查this.isDisposed的信息.
     
    //////////////////////////
    在窗体的Load时怎么退出窗体

    打开某窗体frm1,此窗体打开的条件是必须存在某个值,所以在打开此窗体时,需要在OnLoad事件中
    打开另外一窗体frm2进行选择。

    现流程如下:
    1.在frm2中选择到值,直接把值传入frm1使用,没有什么问题。
    2.在frm2中未选择到值,需要在关闭frm2的同事,也在关闭frm1,因为frm1执行的条件是必须存在此值。

    上述问题2中的用普通的this.close方法不能实现,错误信息如下:
    this.Close() 或 this.Dispose()时 都会出错:
    "执行 CreateHandle() 时无法调用值 Dispose()"
    "执行 CreateHandle() 时无法调用值 Close()"

    因为在OnLoad事件中,当前窗体的句柄Handle还没有创建完成
    所以不能直接进行关闭操作,变通的实现方法如下:

    protected override void OnVisibleChanged(EventArgs e)
    {
    base.OnVisibleChanged(e);
    if (条件)
    this.Close();
    }
    也可以重写 OnShown 或者在 Shown 事件响应中写。

    转自:

    http://bbs.bccn.net/thread-225000-1-1.html

    http://www.cnblogs.com/linfuguo/archive/2007/01/10/616539.html

    if (!= jQuery) { = jQuery.noConflict(); } var isLogined = false; var cb_blogId = 13416; var cb_entryId = 616539; var cb_blogApp = "linfuguo"; var cb_blogUserGuid = "46a3310b-63cf-dd11-9e4d-001cf0cd104b"; var cb_entryCreatedDate = '2007/1/10 12:06:00';
  • 相关阅读:
    Linux下vi命令大全
    Ubuntu的cron日志在哪里?
    如何使用DNN中的Calendar控件
    对DNN的理解:
    “SQL Server does not allow remote connections”错误的解决
    如何去除Search Skin ojbect中的"web"和"site"选项按键
    DNN发邮件通知4.8.2有漏洞,最好升级到新版本
    模块开发中一点疑惑?
    经典ASP代码大集合
    漂亮button
  • 原文地址:https://www.cnblogs.com/wangguowen27/p/2629522.html
Copyright © 2011-2022 走看看