控制項定義**是:
public system.windows.forms.listbox listbox1;
private system.windows.forms.label label1;
private system.windows.forms.textbox textbox1
private system.windows.forms.button button1;
private system.windows.forms.label label2;
private system.windows.forms.textbox textbox2;
private system.windows.forms.label label3;
private system.windows.forms.textbox textbox3;
private system.windows.forms.label label4;
private system.windows.forms.textbox textbox4;
開啟form1的**編輯器,增加如下的命名空間:
using system.net;//網路功能
using system.io;//流支援
using system.threading ;//執行緒支援
增加如下的程式變數:
public bool threadw; //每個執行緒結束標誌
public string filenamew;//每個執行緒接收檔案的檔名
public int filestartw;//每個執行緒接收檔案的起始位置
public int filesizew;//每個執行緒接收檔案的大小
public string strurl;//接受檔案的url
public bool hb;//檔案合併標誌
public int thread;//程序數
定義乙個httpfile類,用於管理接收執行緒,其**如下:
~httpfile()//析構方法
public void receive()//接收執行緒
fs.close();
ns.close ();
}catch (exception er)
formm.listbox1 .items.add ("程序"+threadh.tostring ()+"接收完畢!");
formm.threadw[threadh]=true;}}
該類和form1類處於統一命名空間,但不包含在form1類中。下面定義「開始接收」按鈕控制項的事件響應函式:
private void button1_click(object sender, system.eventargs e)
catch (exception er)
// 接收執行緒數
thread=convert.toint32 (textbox4.text .trim().tostring (),10);
//根據執行緒數初始化陣列
threadw=new bool [thread];
filenamew=new string [thread];
filestartw=new int [thread];
filesizew=new int[thread];
//計算每個執行緒應該接收檔案的大小
int filethread=(int)filesize/thread;//平均分配
int filethreade=filethread+(int)filesize%thread;//剩餘部分由最後乙個執行緒完成
//為陣列賦值
for (int i=0;i
合併檔案的執行緒hbfile定義在form1類中,定義如下:
public void hbfile()
else
}fstemp.close ();
}fs.close ();
datetime dt=datetime.now;
textbox1.text =dt.tostring ();//結束時間
messagebox.show ("接收完畢!!!");
}
用C 實現HTTP協議下的多執行緒檔案傳輸
httpwebrequest類實現了很多通過http訪問web伺服器上檔案的高階功能。httpwebrequest類對webrequest中定義的屬性和方法提供支援,httpwebrequest將傳送到internet資源的公共http標頭的值公開為屬性,由方法或系統設定,常用的由屬性或方法設定的h...
Linux下http協議實現 C
include include include string h include include socket h include errno h include include include include include include ctype h int main int argc,ch...
Windows下C 實現多執行緒
有時候我們想在乙個類中實現多執行緒,主線程在某些時刻獲得資料,可以 通知 子執行緒去處理,然後把結果返回。下面的例項是主線程每隔2s產生10個隨機數,將這10隨機數傳給多執行緒類,讓它接收到資料後馬上列印出來。首先看類的定義 cpp view plain copy print?pragma once...