當前位置:首頁 » 有線網路 » 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