- 博客(0)
- 资源 (5)
- 问答 (4)
- 收藏
- 关注
一个多线程断点上传文件的功能
用多线程实现断点上传的功能
DeleteOverThread();
#region 初始化
string backUploadStatus = dr["BACKEND_UPLOAD_STATUS"].ToString();
//是否上传成功或取消
if (backUploadStatus == Status.Upload_Successful.ToString() || backUploadStatus == Status.Cancel.ToString())
{
//关闭线程
if (dictionary.ContainsKey(Convert.ToInt32(dr["INDEX_KEY"])))
{
dictionary[Convert.ToInt32(dr["INDEX_KEY"])].Abort();
dictionary.Remove(Convert.ToInt32(dr["INDEX_KEY"]));
}
}
//如果状态是初始化,上传中,重新上传则new线程进行上传操作
if (backUploadStatus == Status.INIT.ToString() || backUploadStatus == Status.Uploading.ToString() || backUploadStatus == Status.RE_UPLOAD.ToString())
{
//判断线程是否正在运行并且线程个数小于5
if (!dictionary.ContainsKey(Convert.ToInt32(dr["INDEX_KEY"])) && dictionary.Count < upConfig.RETRY_TIME)
{
ParameterizedThreadStart threadStart = new ParameterizedThreadStart(FileUpLoad);
Thread _thread = new Thread(threadStart);
UserFile file = new UserFile(dr["FILE_PATH"].ToString(), Convert.ToInt32(dr["customer_ID"])
, dr["REQUEST_ID"].ToString(), Convert.ToInt32(dr["INDEX_KEY"]));
//将线程加入到Dictionary
dictionary.Add(Convert.ToInt32(dr["INDEX_KEY"]), _thread);
//启动线程
dictionary[Convert.ToInt32(dr["INDEX_KEY"])].Start(file);
}
}
2012-10-26
Unity3D动画循环播放,角色停止攻击后播放动画1,动画1播放一段时间后播放动画2
2014-08-11
AndRoid System.out.print不能输出到LogCat
2014-03-15
服务器被攻击,多了一个image.aspx文件
2014-03-10
写MSSQL存储过程 输入参数N(1……100之间)的整数,输出1+2+……N的和
2013-11-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人