手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >关于.net(C#)中的跨进程访问的问题
关于.net(C#)中的跨进程访问的问题
摘要:namespaceprocess_image{publicpartialclassjszg_upload:Form{staticboolst...

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.net中WebResponse 跨域访问实例代码

有关于JSON的一些资料

页面导出为Excel的时间格式的问题

asp.net下用DataSet生成XML的问题

Asp.net中的mail的发送

asp.net(C#)中上传大文件的几中常见应用方法

asp.net中List的使用方法

asp.net下出现其中的组件“访问被拒绝”的解决方法

asp.net下模态对话框关闭之后继续执行服务器端代码的问题

asp.net学习中发现的比较完整的流程

精品推荐
分类导航