//private List<SimpleUser> votedUsers = new List<SimpleUser>(); //public List<SimpleUser> VotedUsers //{ // get // { // return votedUsers; // } // set { votedUsers = value; } //} public override string ToString() { StringTable table = new StringTable(); table.Add("threadID", ThreadID.ToString()); table.Add("itemID", ItemID.ToString()); table.Add("itemName", m_ItemName.ToString()); table.Add("pollItemCount", PollItemCount.ToString()); return(table.ToString()); }
public void receive() { //线程临时文件 string fileName = Form.fileNames[ThreadID]; //接收缓冲区 byte[] buffer = new byte[_bufferSize]; //接收字节数 int readSize = 0; Stream stream = null; this.WriteLog(" 线程[" + ThreadID.ToString() + "] 开始接收......"); while (true) { if (!Form.isPause) { using (FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate)) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI); request.AddRange(Form.restartPos[ThreadID], Form.startPos[ThreadID] + Form.fileSize[ThreadID]); stream = request.GetResponse().GetResponseStream(); readSize = stream.Read(buffer, 0, _bufferSize); while (!Form.isPause && readSize > 0) { fileStream.Write(buffer, 0, readSize); Form.hasReceived[ThreadID] += readSize; this.WriteLog(" 线程[" + ThreadID.ToString() + "] 已接收" + Form.hasReceived[ThreadID] + "字节"); readSize = stream.Read(buffer, 0, _bufferSize); Thread.Sleep(100); } Form.restartPos[ThreadID] = Form.startPos[ThreadID] + Form.hasReceived[ThreadID]; if (Form.hasReceived[ThreadID] < Form.fileSize[ThreadID]) { this.WriteLog(" 线程[" + ThreadID.ToString() + "] 暂停接收, 已接收" + Form.hasReceived[ThreadID] + "字节"); } stream.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } if (Form.hasReceived[ThreadID] >= Form.fileSize[ThreadID] + 1) { break; } } Form.threadIsEnd[ThreadID] = true; this.WriteLog(" 线程[" + ThreadID.ToString() + "] 结束"); }