VC++ MFC 系统编程技巧
外部中止线程
问:我有一个对话框,里面显示了一系列在一目录中可用的文件,我想当目录的 内容有所 变化时,对话框也能发生相应的变化,这需要从别的线程实现这个要 求,但怎样才能使该 线程能在对话框退出时同时关闭?
答:你可以做下面的一件事情就可以实现.
-在对话框中调用TerminateThread(handle, exitcode). -使用信号量,当你 想关闭线程时只需检查该标志罢了. -在线程中使用消息循环,然后从对话框 调用PostThreadMessage 2)谢谢大家的回复,在大家的帮助下我的问题 已经解决了,现写出来给大家作参考. 问题是有一个对话框,里面显示了一 系列在一目录中可用的文件,我想当目录的内容有所 变化时,对话框也能发 生相应的变化.其实用一个新线程以及使用WaitForSingleObject() 循环就 可以了.但似乎不容易在退出对话框时中止线程,解决方法包括建立一个私 有事件 用WaitForMultipleObjects()等待.具体如下
BOOL CLocalNotes::OnInitDialog()
{
Cdialog::OnInitDialog();
Cstringeventname; // Generate a unique event name eventname.Format("Viewer %x", &eventname);
m_FinishedHandle = CreateEvent(NULL, false, false, eventname); m_WatcherThread = AfxBeginThread(FileWatcher, this,
THREAD_PRIORITY_NORMAL,
0, CREATE_SUSPENDED, NULL);
m_NotifyHandle=::FindFirstChangeNotification(m_PatDir, false,
FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME); m_WatcherThread->ResumeThread();
RefreshList(); // Generate the list of files
return TRUE;
}
....
Static UINT FileWatcher(LPVOID TheNote)
{
CLocalNotes *OurNote = (CLocalNotes*)TheNote;
HANDLE handle[2];
handle[0]=OurNote->NotifyHandle();
handle[1]=OurNote->FinishedHandle();
终止线程两个函数:ExitThread 和 TerminateThread 1 若要终止线程的运行,可以使用下面四种的方法: 线程函数退出循环来返回 (最佳方法 )。 通过调用 ExitThread 函数,...
线程终止_计算机软件及应用_IT/计算机_专业资料。线程终止线程终止方式 一般来说,Posix 的线程终止有两种情况:正常终止和非正常终止。 线程主动调用 pthread_exit()...
C#如何创建和终止线程_IT/计算机_专业资料。C#如何创建和终止线程C# 如何:创建和终止线程(C# 编程指南)此示例演示如何创建辅助线程,并用它与主线程并行执行处理。...
void *restrict arg 2.终止线程 2.终止线程 void pthread_exit(void *status); 本函数可用来终止调 用线程。将释放调用线程所有特定数据绑定 。如果调用线程 用...
关键词:线程thread中止 1/2 相关文档推荐 外部中止线程 2页 免费 3.2.3+... 当线程处于非运行( 当线程处于非运行(Run)状态 ) 当线程处于下面的状况时,...
线程资源的释放方法: 1.外部线程 WaitForSingleObject,发现线程中止运行后,释放线程相关的资源。 如: void main() { CThread thread; //一个自己定义的线程封装类...
终止一个线程的方法_计算机软件及应用_IT/计算机_专业资料。thread java...而假如我们从外部传入数据,比如 1. 2. 3. 4. 5. 6. 7. 8. class T ...
关于线程的参数(2.0),"返回值",及线程的中止 1.线程的参数: 有时候会想向辅助线程传递些信息,这里需要用到 ParameterizedThreadStart 委托 示例: private void ...
·中止线程: 如果需要中止线程可以使用如下的代码: DummyPriorityThread.Abort(); ·同步 经常我们会遇到需要在线程间进行同步的情况,下面的代码给出了一些方法: using...
JAVA强制终止线程_计算机软件及应用_IT/计算机_专业资料 暂无评价
热门文档