影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

 找回密碼
 注冊(開放注冊)
查看: 10917|回復: 0
打印 上一主題 下一主題

[軟件] 如何在程序中開線程(c/c++)

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2006-4-25 12:50:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
近來一朋友問我,他做了個點對點通信的小程序,可是不知道如何處理軟件偵聽以及接受信息的問題?
最簡單的方法是開線程,可是朋友問我,可不可以用time事件來控制? 我的回答如下
    可以用時間事件來控制,不過會有問題出現:
1此時程序只有一個主線程 ,當程序處于偵聽狀態(tài)時accept(我把listen 和 accept 統(tǒng)稱為偵聽狀態(tài)),
如果沒有客戶端發(fā)來連接請求,此時程序將處于等待狀態(tài)(掛起/suspend),同時時間事件的另外一個屬性是他每隔一定時間就促發(fā)一次本身事件,不管先前的事件是否“死亡”,這樣將耗費大量的系統(tǒng)資源。
2做一個一個軟件的目的就是賺錢,客戶使用軟件時候想到的是簡單易用,如果使用時間控制時,程序的控制權將在
時間事件的手中,如果此時因為沒有客戶端來進行連接,那么該事件將掛起,用戶不能對軟件有任何操作。會給用戶一種錯覺。多的就不說了
    朋友問我怎樣開線程
1利用mfc以及win32API 函數來做
  CWinThread 類 以及 AfxBeginThread
至于這些代碼改寫在程序里的什么地方,我不想多說。如果不知道建議大家在學習win32編程,再看MFC編程
首先創(chuàng)建 線程實例 如下
  CWinThread * Thread_Listen ;
定義線程實體函數(讓線程做什么)
UINT funThread_Linten(LPVOID param);
啟動線程
Thread_Listen  = AfxBeginThread(funThread_Linten,this);

Thread_Listen的用途???
先說如何寫 funThread_Linten 函數
在這個函數里面我們作一些我們想讓線程作的事(這句話有點拗口)
但是有點得注意!程序是順序執(zhí)行的,他不能自己控制自己不停的重副運行
怎么辦 我們就用到了Thread_Listen
UINT funThread_Linten(LPVOID param)
{
    // Todo something
   // 注意線面的代碼
Thread_Listen = AfxBeginThread(funThread_Linten,xxx);
}
上面的代碼中我們沒有使用this參數,使用了xxx為什么??
因為函數funThread_Linten不是主程序的成員函數,那我們通過什么來標志線程屬于誰呢
參數param 就是我們剛開線程是傳進來的參數this,但是他的類型時LPVOID我們可以根據需要進行轉遍
That's over
您需要登錄后才可以回帖 登錄 | 注冊(開放注冊)

本版積分規(guī)則

手機訪問本頁請
掃描左邊二維碼
本網站聲明
本網站所有內容為網友上傳,若存在版權問題或是相關責任請聯系站長!
站長電話:0898-66661599    站長聯系QQ:12726567   
站長微信:hainanok
請掃描右邊二維碼
www.myujob.com

小黑屋|手機版|Archiver|電子科大論壇-非清水河畔 ( 瓊ICP備10001196號-2 )

GMT+8, 2025-11-6 23:07 , Processed in 0.063794 second(s), 14 queries .

Powered by 校園招聘信息

© 2001-2020 電子科大論壇-非清水河畔校園招聘

快速回復 返回頂部 返回列表