/// <summary>
        /// 选择需要发送的文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bt_BrowserFile_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                Text_FileMD5.Text = "";
                string FilePath = openFileDialog1.FileName;
                Text_FilePath.Text = FilePath;
                Text_FileName.Text = System.IO.Path.GetFileName(FilePath);
                //创建文件流
                fileInfo = new System.IO.FileInfo(FilePath);

                //获取文件大小
                Text_FileSize.Text = fileInfo.Length.ToString();

                //获取文件包个数(文件总数除以包的大小)
                Text_PackCount.Text = Convert.ToInt32(fileInfo.Length / (long)Text_PackSize.Value).ToString();
                //Text_PackCount.Text = _bagCount.ToString();

                //获取最后一个文件包大小
                Text_LastPackSize.Text = (fileInfo.Length - Convert.ToInt32(Text_PackCount.Text.Trim()) * (long)Text_PackSize.Value).ToString();

                //获取文件的MD5值
                //Text_FileMD5.Text = NetClassLibrary.FileTools.GetFileMD5(FilePath);

                //使用委托来创建新的线程计算文件MD5值;并传递文件路径和返回MD5值
                label20.Text = "正在计算文件MD5值...";
                FileTools  _fileMD5 = new FileTools();
                D_MyGetMD5 myMD5    = new D_MyGetMD5(_fileMD5.GetFileMD5);
                myMD5.BeginInvoke(FilePath, new AsyncCallback(OutMD5), null);
            }
        }
        /// <summary>
        /// 定义一个用于显示返回值的函数
        /// </summary>
        /// <param name="result"></param>
        public void OutMD5(IAsyncResult result)
        {
            AsyncResult async = (AsyncResult)result;

            D_MyGetMD5 Deletget = (D_MyGetMD5)async.AsyncDelegate;

            ////把文件的MD5值显示在文本框中
            //Text_FileMD5.Text = Deletget.EndInvoke(result);

            //实例化界面更新委托,调用界面跟新函数更新MD5显示文本框
            MyInvoke mi = new MyInvoke(UpText);

            this.BeginInvoke(mi, new object[] { Deletget.EndInvoke(result) });
        }