当前位置:首页 » 有线网络 » c等待所有线程结束

c等待所有线程结束

发布时间: 2021-02-10 19:08:10

『壹』 C#如何让一个线程一直等待直到到一个事件的发生,然后处理完后继续等待

有专门控制信号的两个类AutoResetEvent和ManualResetEvent
使用简单说明:
实例化对象
EventWaitHandle _waitHandle = new AutoResetEvent (false);
在线程函数中
while(true)
{
_waitHandle.WaitOne();
//事件发生后要做专的任务
}
事件发生时调属用 _waitHandle.Set()

补充下: 循环中_waitHandle一直在等待,且不会占用cpu 当调用Set时 就执行WaitOne一下的代码了,然后又循环 又WaitOne 等待再次Set()

C# 线程很好的文章,看看学习下吧
http://www.albahari.com/threading/

『贰』 C# 中如何让 主线程 等待 子线程终止

利用异步回调技术,该你个简单的例子。
/// <summary>
/// 开始接收数据
/// </summary>
/// <returns></returns>
public bool StartRevice()
{
isRevice = false;
ReviceDataHandler reviceData = new ReviceDataHandler(IsReviceAll);
IAsyncResult asyncResult = reviceData.BeginInvoke(null, null);
while (!asyncResult.IsCompleted)
{
Thread.Sleep(200);
DataTran.ReviceQuery();
}
bool revFinish = reviceData.EndInvoke(asyncResult);
isRevice = false;
return revFinish;
}

private static bool IsReviceAll()
{
int outTime = 5000;
int index = 0;
while (index < outTime)
{
if (isRevice)
return true;
index += 200;
Thread.Sleep(200);
}
return false;

}
调用BeginInvoke开始网络接收数据,利用asyncResult.IsCompleted判断是否接收完成,没有接收完成就就继续接收。完成就返回你的数据结构。

『叁』 C语言如何终止线程

终止线程有三种方法:
1.线程可以在自身内部调用AfxEndThread()来终止自身的运行
2.可以在线程的版外部调用权BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode )来强行终止一个线程的运行,
然后调用CloseHandle()函数释放线程所占用的堆栈
3.第三种方法是改变全局变量,使线程的执行函数返回,则该线程终止。

unsigned long __cdecl _beginthread (void (__cdecl *) (void *),
unsigned, void *);
void __cdecl _endthread(void);

unsigned long __cdecl _beginthreadex(void *, unsigned,
unsigned (__stdcall *) (void *), void *, unsigned, unsigned *);
void __cdecl _endthreadex(unsigned);

找到的一些资料,希望有点帮助,要不你代码贴点出来

『肆』 VC 如何等待所有子线程退出,我没有保存线程handle,就是begin了一下。

那你就保存一下,然后专用属
CWinThread* pThread = AfxBeginThread(....)
WaitForSingleObject(pThread->m_hThread, INFINITE);

『伍』 求高手指点,如何用C++中的 WaitForMultipleObjecct 功能,等待如下代码中两个线程执行结束

WaitForMultipleObjecct是WinAPI的,你得用__beginthread或者其他api创建的才能等待,你用的是std标准库里的,直接用join来等待结束就可以了。

『陆』 linux下C/C++如何实现非阻塞等待子线程结束

主线程可以使用一来个数组存自储子线程的ID,不调用 pthread_join来等候子线程退出,要是子线程退出后还有工作要清理,可以使用 pthread_cancel_push函数来注册退出控制流时调用的函数

热点内容
网卡了的原因 发布:2021-03-16 21:18:20 浏览:602
联通客服工作怎么样 发布:2021-03-16 21:17:49 浏览:218
路由器画图 发布:2021-03-16 21:17:21 浏览:403
大网卡收费 发布:2021-03-16 21:16:50 浏览:113
路由器免费送 发布:2021-03-16 21:16:19 浏览:985
孝昌营业厅 发布:2021-03-16 21:15:54 浏览:861
网速增速代码 发布:2021-03-16 21:15:29 浏览:194
怎么黑光纤 发布:2021-03-16 21:14:54 浏览:901
端口增大 发布:2021-03-16 21:14:20 浏览:709
开机没信号是什么原因 发布:2021-03-16 21:13:45 浏览:645