时间:2016-02-15 23:48 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【关于.net(C#)中的跨进程访问的问题】,下面是详细的讲解!
关于.net(C#)中的跨进程访问的问题
namespace process_image{
public partial class jszg_upload : Form
{
static bool stop_flag=false;
public jszg_upload()
{
InitializeComponent();
}
private void upload_button1_Click(object sender, EventArgs e)
{
stop_flag=false;
if (this.checkBox1.Checked)
{
String connectionString="连接串";
using (SqlConnection conn=new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd=new SqlCommand(" update my_jszg set filemime=null, filebody=null", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
}
new Thread(uploadImageToDB).Start();
}//end upload_button1_Click
void uploadImageToDB()
{
//第一步:发现文件夹下面的文件及数量
DirectoryInfo myFolder=new DirectoryInfo("bcd");
FileInfo[] myFiles=myFolder.GetFiles();
this.richTextBox1.Text="从文件夹中发现了:" + myFiles.Length.ToString() + " 个文件!" + "\n";
this.jindutiao_progressBar1.Maximum=myFiles.Length;
//第二步:开始上传文件
String connectionString="连接串";
using (SqlConnection conn=new SqlConnection(connectionString))
{
conn.Open();
for (int i=0; i < myFiles.Length; i++)
{
if(stop_flag)
break;
//进度条
this.jindutiao_progressBar1.Value=i + 1;
this.pictureBox1.ImageLocation=myFiles[i].FullName;
this.richTextBox1.Text=myFiles[i].Name + "\n" + this.richTextBox1.Text;
this.baifenbi_label1.Text=((((i + 1) * 1.0) /myFiles.Length) * 100) + "%";
//上传实际的数据image/jpeg
SqlCommand cmd=new SqlCommand(" update my_jszg set filemime='image/jpeg', filebody=@myfilebody from my_jszg where 证件号码=@myzjhm", conn);
byte[] fb=new byte[myFiles[i].Length];
BinaryReader br=new BinaryReader(myFiles[i].OpenRead());
br.Read(fb, 0, (int)myFiles[i].Length);
cmd.Parameters.AddWithValue("@myfilebody", fb);
cmd.Parameters.AddWithValue("@myzjhm", myFiles[i].Name.Substring(0, myFiles[i].Name.LastIndexOf('.')));
cmd.ExecuteNonQuery();
br.Close();
}//end for
conn.Close();
}
MessageBox.Show("所有的文件上传完毕!");
}
//停止上传
private void stop_button_Click(object sender, EventArgs e)
{
stop_flag=true;
}
}
}
在此代码中,对一个控件的访问如: this.richTextBox1.Text=myFiles[i].Name + "\n" + this.richTextBox1.Text; 仅限在一个线程中,如果在两个进程中对控件访问将会出错!如不能在程序自己的线程 和 uploadImageToDB 线程中访问。
关于关于.net(C#)中的跨进程访问的问题的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 【asp】asp.net开发中常见公共捕获异常方式总结(
- 【Visual】分享Visual Studio原生开发的10个调试
- 【全局】.net全局定时定期执行某些操作在Global.a
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
