首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

多线程有关问题:执行 CreateHandle() 时无法调用值 Dispose()

2013-09-06 
多线程问题:执行 CreateHandle() 时无法调用值 Dispose()我在一个Form中用了一个Threading::Timer来定期执

多线程问题:执行 CreateHandle() 时无法调用值 Dispose()
我在一个Form中用了一个Threading::Timer来定期执行一些任务(刷新行情等)。执行这些任务时要用到Form上的某些控件。
当用户关闭该Form时:
1、调试运行时偶尔会出现“执行 CreateHandle() 时无法调用值 Dispose()”异常。通常是头几次正常,然后就出现这个异常;
2、直接运行EXE时,则每次都自动退出程序,没有任何提示。

我已经在Form关闭事件(Closing)中执行了Threading::Timer::~Timer(),并在该Threading::Timer执行的程序中使用了标志变量来指明当前是否处在该程序运行当中,以便Closing中可以等待该程序运行完毕。
这样仍然无法消除该异常。
百思不得其解......
[解决办法]
 for (int i = 0;i <= 100000;i++)
 if (!InThread)
 break;
 this->tmMain->~Timer();
}
[解决办法]
你对this->tmMain的析构函数执行了10万次

热点排行