关于.net(C#)中的跨进程访问的问题

 更新时间:2009年04月13日 11:47:57   作者:  
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 线程中访问。

相关文章

  • 浅谈ASP.NET常用数据绑定控件优劣总结

    浅谈ASP.NET常用数据绑定控件优劣总结

    这篇文章主要介绍了浅谈ASP.NET常用数据绑定控件优劣总结,以便在实际的开发中选用合适的控件进行数据绑定,以提高开发效率。
    2016-12-12
  • 当年学习ADO.NET的笔记

    当年学习ADO.NET的笔记

    那些年学习了ASP.NET后又开始学习ASP.NET的新知识,ADO.NET用于访问数据库,一般可以分为连接模式和非连接模式
    2012-03-03
  • .net core中编辑json配置文件的方法

    .net core中编辑json配置文件的方法

    今天给大家分享.net core中编辑json配置文件的方法,在项目设计中,需要在运行过程中,将远程服务端发送过来的配置信息回写到配置文件中,具体内容详情跟随小编一起看看吧
    2021-06-06
  • .net中自定义错误页面的实现方法

    .net中自定义错误页面的实现方法

    这篇文章主要给大家介绍了关于.net中自定义错误页面实现的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • Web API身份认证解决方案之Basic基础认证

    Web API身份认证解决方案之Basic基础认证

    本文详细讲解了Web API身份认证解决方案之Basic基础认证,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • asp.net中GridView控件遍历的小例子

    asp.net中GridView控件遍历的小例子

    在asp.net中要遍历像数据之类的内容我们一般会用到for,foreach,while这种了,下面我来介绍利用for遍历GridView控件
    2013-08-08
  • asp.net及javascript判断是否手机访问的方法

    asp.net及javascript判断是否手机访问的方法

    这篇文章主要介绍了asp.net及javascript判断是否手机访问的方法,结合实例形式对比分析了asp.net及javascript实现判断访问端类型的相关技巧,需要的朋友可以参考下
    2016-06-06
  • ASP.net 路径问题 详解

    ASP.net 路径问题 详解

    各位有没有碰到在日常工作中经常在路径设置的时候把 "~/ 、./ 、../ 、 / 、"这些符号搞混搞乱了?
    2010-05-05
  • javascript实现listbox左右移动实现代码

    javascript实现listbox左右移动实现代码

    javascript实现listbox左右移动实现代码,需要的朋友可以参考下。
    2010-05-05
  • 如何在Asp.Net Core中集成Refit

    如何在Asp.Net Core中集成Refit

    这篇文章主要介绍了如何在Asp.Net Core中集成Refit,帮助大家更好的理解和学习使用Asp.Net Core,感兴趣的朋友可以了解下
    2021-03-03

最新评论