多线程操作Mysql问题 [问题点数:60分,结帖人lile1234_show]

Bbs1
本版专家分:0
版主
Blank
红花 2013年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第一
2013年1月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第一
Blank
黄花 2013年1月 C/C++大版内专家分月排行榜第二
结帖率 96.77%
Bbs1
本版专家分:30
Bbs9
本版专家分:84179
版主
Blank
金牌 2014年2月 总版技术专家分月排行榜第一
Blank
优秀版主 2016年10月优秀小版主
Blank
银牌 2014年1月 总版技术专家分月排行榜第二
2013年12月 总版技术专家分月排行榜第二
Blank
微软MVP 2014年4月 荣获微软MVP称号
Bbs8
本版专家分:45897
Blank
红花 2017年3月 VB大版内专家分月排行榜第一
2016年12月 VB大版内专家分月排行榜第一
2016年5月 VB大版内专家分月排行榜第一
2016年1月 VB大版内专家分月排行榜第一
2015年12月 VB大版内专家分月排行榜第一
2015年11月 VB大版内专家分月排行榜第一
2015年10月 MS-SQL Server大版内专家分月排行榜第一
2015年9月 VB大版内专家分月排行榜第一
2015年9月 MS-SQL Server大版内专家分月排行榜第一
2015年8月 VB大版内专家分月排行榜第一
2015年8月 MS-SQL Server大版内专家分月排行榜第一
2015年7月 VB大版内专家分月排行榜第一
2015年7月 MS-SQL Server大版内专家分月排行榜第一
2015年6月 VB大版内专家分月排行榜第一
2015年5月 VB大版内专家分月排行榜第一
2015年4月 VB大版内专家分月排行榜第一
2015年3月 VB大版内专家分月排行榜第一
2015年2月 VB大版内专家分月排行榜第一
2014年11月 VB大版内专家分月排行榜第一
2014年9月 VB大版内专家分月排行榜第一
2014年8月 VB大版内专家分月排行榜第一
2014年7月 VB大版内专家分月排行榜第一
2013年7月 VB大版内专家分月排行榜第一
2013年4月 VB大版内专家分月排行榜第一
2010年2月 VB大版内专家分月排行榜第一
2010年1月 VB大版内专家分月排行榜第一
2009年11月 VB大版内专家分月排行榜第一
2009年9月 VB大版内专家分月排行榜第一
2009年8月 VB大版内专家分月排行榜第一
2009年7月 VB大版内专家分月排行榜第一
2009年4月 VB大版内专家分月排行榜第一
2009年3月 VB大版内专家分月排行榜第一
2009年2月 VB大版内专家分月排行榜第一
2009年1月 VB大版内专家分月排行榜第一
2008年6月 VB大版内专家分月排行榜第一
2007年12月 VB大版内专家分月排行榜第一
2007年10月 VB大版内专家分月排行榜第一
2007年9月 VB大版内专家分月排行榜第一
Blank
黄花 2016年11月 VB大版内专家分月排行榜第二
2016年1月 MS-SQL Server大版内专家分月排行榜第二
2015年12月 MS-SQL Server大版内专家分月排行榜第二
2015年11月 MS-SQL Server大版内专家分月排行榜第二
2015年5月 MS-SQL Server大版内专家分月排行榜第二
2015年4月 MS-SQL Server大版内专家分月排行榜第二
2015年1月 VB大版内专家分月排行榜第二
2015年1月 MS-SQL Server大版内专家分月排行榜第二
2014年12月 VB大版内专家分月排行榜第二
2014年11月 MS-SQL Server大版内专家分月排行榜第二
2014年9月 MS-SQL Server大版内专家分月排行榜第二
2013年8月 VB大版内专家分月排行榜第二
2013年6月 VB大版内专家分月排行榜第二
2013年5月 VB大版内专家分月排行榜第二
2010年4月 VB大版内专家分月排行榜第二
2010年3月 VB大版内专家分月排行榜第二
2008年12月 VB大版内专家分月排行榜第二
2008年8月 VB大版内专家分月排行榜第二
2008年7月 VB大版内专家分月排行榜第二
2007年11月 VB大版内专家分月排行榜第二
Blank
蓝花 2017年1月 MS-SQL Server大版内专家分月排行榜第三
2015年6月 MS-SQL Server大版内专家分月排行榜第三
2015年3月 MS-SQL Server大版内专家分月排行榜第三
2015年2月 MS-SQL Server大版内专家分月排行榜第三
2014年12月 MS-SQL Server大版内专家分月排行榜第三
2014年10月 VB大版内专家分月排行榜第三
2014年10月 MS-SQL Server大版内专家分月排行榜第三
2014年8月 MS-SQL Server大版内专家分月排行榜第三
2013年9月 VB大版内专家分月排行榜第三
2013年3月 VB大版内专家分月排行榜第三
2012年5月 VB大版内专家分月排行榜第三
2012年4月 VB大版内专家分月排行榜第三
2010年10月 VB大版内专家分月排行榜第三
2010年8月 VB大版内专家分月排行榜第三
2010年7月 VB大版内专家分月排行榜第三
2009年5月 VB大版内专家分月排行榜第三
2008年9月 VB大版内专家分月排行榜第三
2008年4月 VB大版内专家分月排行榜第三
2008年2月 VB大版内专家分月排行榜第三
Bbs8
本版专家分:45897
Blank
红花 2017年3月 VB大版内专家分月排行榜第一
2016年12月 VB大版内专家分月排行榜第一
2016年5月 VB大版内专家分月排行榜第一
2016年1月 VB大版内专家分月排行榜第一
2015年12月 VB大版内专家分月排行榜第一
2015年11月 VB大版内专家分月排行榜第一
2015年10月 MS-SQL Server大版内专家分月排行榜第一
2015年9月 VB大版内专家分月排行榜第一
2015年9月 MS-SQL Server大版内专家分月排行榜第一
2015年8月 VB大版内专家分月排行榜第一
2015年8月 MS-SQL Server大版内专家分月排行榜第一
2015年7月 VB大版内专家分月排行榜第一
2015年7月 MS-SQL Server大版内专家分月排行榜第一
2015年6月 VB大版内专家分月排行榜第一
2015年5月 VB大版内专家分月排行榜第一
2015年4月 VB大版内专家分月排行榜第一
2015年3月 VB大版内专家分月排行榜第一
2015年2月 VB大版内专家分月排行榜第一
2014年11月 VB大版内专家分月排行榜第一
2014年9月 VB大版内专家分月排行榜第一
2014年8月 VB大版内专家分月排行榜第一
2014年7月 VB大版内专家分月排行榜第一
2013年7月 VB大版内专家分月排行榜第一
2013年4月 VB大版内专家分月排行榜第一
2010年2月 VB大版内专家分月排行榜第一
2010年1月 VB大版内专家分月排行榜第一
2009年11月 VB大版内专家分月排行榜第一
2009年9月 VB大版内专家分月排行榜第一
2009年8月 VB大版内专家分月排行榜第一
2009年7月 VB大版内专家分月排行榜第一
2009年4月 VB大版内专家分月排行榜第一
2009年3月 VB大版内专家分月排行榜第一
2009年2月 VB大版内专家分月排行榜第一
2009年1月 VB大版内专家分月排行榜第一
2008年6月 VB大版内专家分月排行榜第一
2007年12月 VB大版内专家分月排行榜第一
2007年10月 VB大版内专家分月排行榜第一
2007年9月 VB大版内专家分月排行榜第一
Blank
黄花 2016年11月 VB大版内专家分月排行榜第二
2016年1月 MS-SQL Server大版内专家分月排行榜第二
2015年12月 MS-SQL Server大版内专家分月排行榜第二
2015年11月 MS-SQL Server大版内专家分月排行榜第二
2015年5月 MS-SQL Server大版内专家分月排行榜第二
2015年4月 MS-SQL Server大版内专家分月排行榜第二
2015年1月 VB大版内专家分月排行榜第二
2015年1月 MS-SQL Server大版内专家分月排行榜第二
2014年12月 VB大版内专家分月排行榜第二
2014年11月 MS-SQL Server大版内专家分月排行榜第二
2014年9月 MS-SQL Server大版内专家分月排行榜第二
2013年8月 VB大版内专家分月排行榜第二
2013年6月 VB大版内专家分月排行榜第二
2013年5月 VB大版内专家分月排行榜第二
2010年4月 VB大版内专家分月排行榜第二
2010年3月 VB大版内专家分月排行榜第二
2008年12月 VB大版内专家分月排行榜第二
2008年8月 VB大版内专家分月排行榜第二
2008年7月 VB大版内专家分月排行榜第二
2007年11月 VB大版内专家分月排行榜第二
Blank
蓝花 2017年1月 MS-SQL Server大版内专家分月排行榜第三
2015年6月 MS-SQL Server大版内专家分月排行榜第三
2015年3月 MS-SQL Server大版内专家分月排行榜第三
2015年2月 MS-SQL Server大版内专家分月排行榜第三
2014年12月 MS-SQL Server大版内专家分月排行榜第三
2014年10月 VB大版内专家分月排行榜第三
2014年10月 MS-SQL Server大版内专家分月排行榜第三
2014年8月 MS-SQL Server大版内专家分月排行榜第三
2013年9月 VB大版内专家分月排行榜第三
2013年3月 VB大版内专家分月排行榜第三
2012年5月 VB大版内专家分月排行榜第三
2012年4月 VB大版内专家分月排行榜第三
2010年10月 VB大版内专家分月排行榜第三
2010年8月 VB大版内专家分月排行榜第三
2010年7月 VB大版内专家分月排行榜第三
2009年5月 VB大版内专家分月排行榜第三
2008年9月 VB大版内专家分月排行榜第三
2008年4月 VB大版内专家分月排行榜第三
2008年2月 VB大版内专家分月排行榜第三
Bbs1
本版专家分:0
版主
Blank
红花 2013年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第一
2013年1月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第一
Blank
黄花 2013年1月 C/C++大版内专家分月排行榜第二
Bbs8
本版专家分:45897
Blank
红花 2017年3月 VB大版内专家分月排行榜第一
2016年12月 VB大版内专家分月排行榜第一
2016年5月 VB大版内专家分月排行榜第一
2016年1月 VB大版内专家分月排行榜第一
2015年12月 VB大版内专家分月排行榜第一
2015年11月 VB大版内专家分月排行榜第一
2015年10月 MS-SQL Server大版内专家分月排行榜第一
2015年9月 VB大版内专家分月排行榜第一
2015年9月 MS-SQL Server大版内专家分月排行榜第一
2015年8月 VB大版内专家分月排行榜第一
2015年8月 MS-SQL Server大版内专家分月排行榜第一
2015年7月 VB大版内专家分月排行榜第一
2015年7月 MS-SQL Server大版内专家分月排行榜第一
2015年6月 VB大版内专家分月排行榜第一
2015年5月 VB大版内专家分月排行榜第一
2015年4月 VB大版内专家分月排行榜第一
2015年3月 VB大版内专家分月排行榜第一
2015年2月 VB大版内专家分月排行榜第一
2014年11月 VB大版内专家分月排行榜第一
2014年9月 VB大版内专家分月排行榜第一
2014年8月 VB大版内专家分月排行榜第一
2014年7月 VB大版内专家分月排行榜第一
2013年7月 VB大版内专家分月排行榜第一
2013年4月 VB大版内专家分月排行榜第一
2010年2月 VB大版内专家分月排行榜第一
2010年1月 VB大版内专家分月排行榜第一
2009年11月 VB大版内专家分月排行榜第一
2009年9月 VB大版内专家分月排行榜第一
2009年8月 VB大版内专家分月排行榜第一
2009年7月 VB大版内专家分月排行榜第一
2009年4月 VB大版内专家分月排行榜第一
2009年3月 VB大版内专家分月排行榜第一
2009年2月 VB大版内专家分月排行榜第一
2009年1月 VB大版内专家分月排行榜第一
2008年6月 VB大版内专家分月排行榜第一
2007年12月 VB大版内专家分月排行榜第一
2007年10月 VB大版内专家分月排行榜第一
2007年9月 VB大版内专家分月排行榜第一
Blank
黄花 2016年11月 VB大版内专家分月排行榜第二
2016年1月 MS-SQL Server大版内专家分月排行榜第二
2015年12月 MS-SQL Server大版内专家分月排行榜第二
2015年11月 MS-SQL Server大版内专家分月排行榜第二
2015年5月 MS-SQL Server大版内专家分月排行榜第二
2015年4月 MS-SQL Server大版内专家分月排行榜第二
2015年1月 VB大版内专家分月排行榜第二
2015年1月 MS-SQL Server大版内专家分月排行榜第二
2014年12月 VB大版内专家分月排行榜第二
2014年11月 MS-SQL Server大版内专家分月排行榜第二
2014年9月 MS-SQL Server大版内专家分月排行榜第二
2013年8月 VB大版内专家分月排行榜第二
2013年6月 VB大版内专家分月排行榜第二
2013年5月 VB大版内专家分月排行榜第二
2010年4月 VB大版内专家分月排行榜第二
2010年3月 VB大版内专家分月排行榜第二
2008年12月 VB大版内专家分月排行榜第二
2008年8月 VB大版内专家分月排行榜第二
2008年7月 VB大版内专家分月排行榜第二
2007年11月 VB大版内专家分月排行榜第二
Blank
蓝花 2017年1月 MS-SQL Server大版内专家分月排行榜第三
2015年6月 MS-SQL Server大版内专家分月排行榜第三
2015年3月 MS-SQL Server大版内专家分月排行榜第三
2015年2月 MS-SQL Server大版内专家分月排行榜第三
2014年12月 MS-SQL Server大版内专家分月排行榜第三
2014年10月 VB大版内专家分月排行榜第三
2014年10月 MS-SQL Server大版内专家分月排行榜第三
2014年8月 MS-SQL Server大版内专家分月排行榜第三
2013年9月 VB大版内专家分月排行榜第三
2013年3月 VB大版内专家分月排行榜第三
2012年5月 VB大版内专家分月排行榜第三
2012年4月 VB大版内专家分月排行榜第三
2010年10月 VB大版内专家分月排行榜第三
2010年8月 VB大版内专家分月排行榜第三
2010年7月 VB大版内专家分月排行榜第三
2009年5月 VB大版内专家分月排行榜第三
2008年9月 VB大版内专家分月排行榜第三
2008年4月 VB大版内专家分月排行榜第三
2008年2月 VB大版内专家分月排行榜第三
linux下多线程操作mysql怎么做
linux下<em>多线程</em><em>操作</em><em>mysql</em>怎么做rn看了文档不太理解rnlinux使用<em>mysql</em> c API访问数据库rn我使用每个线程管理一个连接,<em>mysql</em>允许多少个这样的连接,我这里大概有200多个线程,每个线程维护一个连接可以么?rnrn有没有demo代码,多谢
问题多线程与UI操作
为何使用线程<em>操作</em>控件,还是会阻滞UI界面? 比如我点击 button1创建新线程thA后,界面就阻滞了界面 ,我想点击button2新一个thB,得等thA走玩,界面才恢复过来。。。。。。rn代码:rnrn[code=C#]rn private System.Windows.Forms.Button button1;rn private System.Windows.Forms.Button button2;rn private System.Windows.Forms.RichTextBox richTextBox1;rn private delegate void MyDelegate(object obj);rn public void ThreadMethod(object obj)rn rn string str=(string)obj;rn int i = 0;rn while (i);rn [/code]
多线程操作队列问题.
list1,list2rnrnthreadA()rnrn while(1)rn rn new obj1;rn list1.AddTail(obj1);rn PostMessageToThreadB();rn rnrnrnthreadB::OnReceiveMessage()rnrn new obj2;rn list2.AddTail(obj2); rnrnrnrnthreadC()rnrn while(1)rn rn while(list1.RemoveHead())rn //do...rn while(list2.RemoveHead())rn //do...rnrn rnrnrnrnrn上面就是程序的大概结构.rnrn有两个队列,先进先出的.rn线程A和线程B向两个队列里依次插入数据. 顺序是先A后B, 而且是一一对应的.rn线程C依次处理两个队列里的数据.限制是,对于一次产生的两条数据,必须是先处理队列1,后处理队列2的.rnrn现在有多个线程A的实例,还有多个线程C的实例.rnrn出现了<em>问题</em>:rn当执行while(list2.RemoveHead())的过程中,rn如果线程A新产生了一条数据,分别插入了队列1和队列2,就会先执行队列2,后执行队列1.rnrn如何避免这种<em>问题</em>?
多线程操作DataGridView的问题
<em>多线程</em><em>操作</em>DataGridView的<em>问题</em>rnrn最近做一个程序,需要用到<em>多线程</em>来<em>操作</em>DataGridView,可以该控件总会出现很多意外的错误。rnrn我的程序要求是:使用<em>多线程</em>住DataGridView里面实时异步的插入数据!rnrn求高手给一个例子或指点!
mysql多线程
<em>mysql</em>是一个单进程<em>多线程</em>的数据库,在innodb中大概有一下几种线程: (1)Master Thread:这是主线程,非常核心,其用途主要是做一些周期性的任务,在不同的innodb版本其功能不同,这里就看最早期的版本。早起额innodb Master线程会有两种频率的任务,一种是每1秒一次的,还有每10秒一次的。 每1秒的工作: 1.刷新日志; 2.刷新至多100个脏页 3.合并插入...
mysql多线程访问总结
  近来<em>多线程</em>运行一段时间就报2006错误。而且一旦出现2006,就再也无法正常查询数据库了。怀疑是<em>多线程</em><em>问题</em>。从网上搜索了一下,总结方法: 使用--with-thread-safe-client编译终端。 如果几个共用一个MYSQL*,在<em>mysql</em>_query和<em>mysql</em>_store_result之间,不能有其他数据库动作(查询、修改、删除等)。为此,需要使用线程锁。 这个有点麻烦,特别是在...
为什么Mysql使用多线程,而Oracle使用多进程
为什么Mysql使用<em>多线程</em>,而Oracle使用多进程 菜鸟不明白,于是搜索了一下,现在大致整理出来如下: 传统的unix系统,早期没有提供<em>多线程</em>,只有多进程。linux是最近的版本才加入<em>多线程</em>支持,以前一直都是多进程。windows很早就支持<em>多线程</em>,本地应用大部分也是<em>多线程</em>。因此oracle在windows上一直都是<em>多线程</em>,在unix上才是多进程。多进程的好处是,一个进程崩溃不会影
多线程操作datagridview的问题
我单独开个现场读取数据库,然后绑定到datagridview中,网上找了很多资料,我试了还是出现<em>问题</em>,忘大家帮忙指点。rnrn public delegate void mydelegate();rnrn public void display()rn rn mydelegate mc = new mydelegate(displaySelectedTabelData);rn mc.Invoke(); rn rnrn private void displaySelectedTabelData()rn rn tryrn rn if (comboBox2.Text != "")rn rn SqlConnection objconnection = new SqlConnection(connectionstring);rn SqlCommand objcommand = new SqlCommand();rn objconnection.Open();rn objcommand.Connection = objconnection;rn objcommand.CommandText = "select * from " + comboBox2.Text.Trim();rn SqlDataAdapter dap = new SqlDataAdapter(objcommand);rn DataSet ds = new DataSet();rn dap.Fill(ds, comboBox2.Text.Trim());rn dataGridView1.DataSource = ds.Tables[comboBox2.Text.Trim()];rn objconnection.Dispose();rn objcommand.Dispose();rn rn elsern rn MessageBox.Show("请选择表格名称", "信息提示");rn rn rn catch (Exception ee)rn rn MessageBox.Show(ee.Message, "错误提示!");rn rn rn private void btn_dispData_Click(object sender, EventArgs e)rn rn ThreadStart start = new ThreadStart(display);rn Thread read = new Thread(start);rn read.IsBackground = true;rn read.Start();rn rn运行之后出现以下<em>问题</em>:rn1.datagridview的滚动条还是没有出现,需要手动刷新才行rn(我在网上找的代码, dataGridView1.RightToLeft = RightToLeft.Yes; dataGridView1.RightToLeft = RightToLeft.No;)rnrn2.我再选择第二个表格名,然后点击显示数据时,如果距离第一次点击时间较短,会出现这样的错误:rn static class Programrn rn /// rn /// 应用程序的主入口点。rn /// rn [STAThread]rn static void Main()rn rn Application.EnableVisualStyles();rn Application.SetCompatibleTextRenderingDefault(false);rn Application.Run(new MDIParent());rn rn rn错误居然跑到这个地方:Application.Run(new MDIParent());“未将对象引用设置到对象的实例。”并且显示数据的窗体被关闭了,这是什么原因rnrn这个是具体怎么弄的,希望能贴个具体的代码实例,非常感谢rnrnrnrnrnrn
C++操作多线程问题
我用C++<em>多线程</em>实现了一个软件总线原理,基于消息机制,其实质就是消息的发布/订阅。我用了将近20个线程来实现整个系统的功能。有几个<em>问题</em>向大侠请教:rnrn1. 老是在运行过程中当掉,不知道<em>问题</em>出在哪里。是不是线程同步没有弄好啊rnrn2. 再者,我写的是win32控制台的C++<em>多线程</em>,思路肯定是main函数是主线程,在main函数当中设置一个while(true) 。 但是这个循环体里面为什么不能添加<em>操作</em>啊,比如Sleep或者Printf等等。按常理来说main函数是主线程,它的执行体里面可以放<em>操作</em>的啊?rnrn3. 我怎么感觉我编的这个原型系统效率很低啊,是不是用的线程太多了?rnrn有感兴趣的叔叔、阿姨、哥哥姐姐们,请多多的指点,小弟是一个fish……rn如果对源码感兴趣可以留邮箱交流。。。。谢谢
多线程操作ProgressBar的问题
我没做过CS的项目,很少<em>操作</em><em>多线程</em>,<em>问题</em>如果问的不是很清楚,请见谅。rnrn需求是这样,当开启一个线程(读取数据),获得数据总数设置进度条的最大值,然后每读取一条数据,就让进度条+1rnrn但是会报错 rnrn线程间<em>操作</em>无效: 从不是创建控件“progressBar1”的线程访问它rnrn后来查了很多资料,写的例子都是单独<em>操作</em>进度rnrn或者是 Control.CheckForIllegalCrossThreadCalls = false;rnrn再有就是通过Invoke方法之类的,但没有设置最大值和最小值的地方,rnrn有没有朋友能写一个详细的例子提供参考一下,谢谢!
多线程操作数据库的问题
程序中有几十个相同的线程同时运行,需要每两,三分钟左右<em>操作</em>一次数据库,rn我使用ADO.NET<em>操作</em>数据库,需要执行的存储过程相同,就是参数不同.rn想请问是将数据库的连接,<em>操作</em>,断开写在线程里好rn还是在线程外(如FORM里)写好一个数据库连接,<em>操作</em>的方法,比如写个执行存储过程的函数,在线程里调用,传参数进去
多线程操作问题
我做了一个定时程序,用Timer定时,一到设定的时间,就新建一个线程,并在线程中向数据库导入数据。rn因为有多个数据库,而且定时的时间都不一样,所以会同时运行多个线程。rn现在<em>问题</em>是,线程有ThreadStart和Thread两种,请问有什么区别?rn用ThreadStart新建的线程,然后用MethodInvoke运行,可以正常的将信息写到窗体上,但是如果用Thread新建线程,然后用Start运行,则要么报错要么不现实信息?rn第二个<em>问题</em>是,我如何判断我创建的线程是否完成了呢,然后清除线程的代码应该写在哪里呢?是线程内部,还是新建线程的地方,还是需要新建一个线程监控呢?rn希望大侠给予指点!
多线程操作问题
比如:在Delphi6下,把ADOQuery查询的结果通过SaveToFile函数可以导入到一个XML文件,这个过程怎么用<em>多线程</em><em>操作</em>?!设置线程个数,最好可以通过手动设定个数。rnrn哪位大侠有这方面的例子(源代码),给我看看啊!rn重分求救!rnrn在线等待答复,email:loyalfox@263.net
多线程操作DataTable的问题
一个DataTable,为了加速<em>操作</em>使用两个线程。比如第一个线程修改table的第一行数据,第二个线程修改table的第四行数据。这两个线程的<em>操作</em>是不是都<em>操作</em>在这个datatable上面,而不是<em>操作</em>了table的副本。
多线程操作 Graphics 的问题
在<em>多线程</em>同时绘图时,绘制内容稍多时,极易发生撞车,报 Object is in use 错误。rn<em>多线程</em>绘图有两种:rnrn一为新线程会覆盖老线程。也就是说,新线程创建后,老线程应该作废。rn二为新线程和老线程分工独立,两个都要绘制。rnrn前一种情形下的处理本应调用 aThread.Abort() 后执行 bThread,然而,Abort 消耗时间很长,画面将不流畅。我目前借助一个全局流水 id, 启动 bThread 时,给线程分配一个新 id, 线程内每步都检查它拿到的 id 是否已经小于当前全局 id, 不检查便退出。rn这个方法可以达到目的,但很麻烦,每绘制一步需要检查一次。当需要进一步封装时,由于可能已超出 id 所在的可见域,该方法会失效。rnrn后一种情形,似可借助线程队列来做,情况更显复杂。rnrn在动手写代码前咨询一下大侠,有没有更好的办法处理<em>多线程</em>抢 Graphics 的<em>问题</em>。谢谢。rnrn
多线程操作IE的问题!!!!
我有一个demo程序,是用来<em>操作</em>IE的(就是用IE的接口控制网页)。我现在想在一个程序里面开一个线程做同样的事情。用IE的接口控制网页等所有的动作都在同一个线程里面完成,另外的线程只要得到我执行的结果就可以了。问问各位大虾,这样做有<em>问题</em>么??会不会出现冲突。没有做过ie编程,不知道<em>多线程</em>下的ie的行为,希望指教!rn在线等待!!up者有分!!!
多线程操作数据库的问题
设定:rn1、线程A和B可能同时<em>操作</em>TableTestrn问:rn当线程A对TableTest进行insert/updata<em>操作</em>时,是否对整个TableTest表的资源占有?还是只是锁定当前<em>操作</em>行?rn线程B是否可以对TableTest进行insert/updata的<em>操作</em>
请教多线程操作问题
比如:在Delphi6下,把ADOQuery查询的结果通过SaveToFile函数可以导入到一个XML文件(或者在执行查询的过程),这个过程怎么用<em>多线程</em><em>操作</em>?!同时能动态设置线程个数,最好可以通过手动设定个数。rnrn哪位大侠有这方面的例子(源代码),给我看看啊!rn重分求救!rnrn在线等待答复,email:loyalfox@263.netrn
多线程操作问题
void CTestDlg::OnOK() rnrn for(int i=1;iGetBuffer(url->GetLength());rn CFile myfile;rn CString csTemp;rn csTemp="D:\\1.txt"; //该文件已存在rn myfile.Open(csTemp,CFile::modeWrite | rn CFile::typeBinary);rn rn myfile.Write(m_sURL,m_sURL.GetLength());rn myfile.Close();rn return 1;rnrn现在遇到的<em>问题</em>是多个线程要对同一个文件进行写<em>操作</em>.请问要如何对他们实现一个一个依次进行写入数据,好像用互斥对象能行,但不太会用.请高手指点一下.
多线程操作Webbrowser控件问题
线程A创建一个对话框(对话框资源包含在一个DLL中),对话框上创建了一个Webbrowser控件。线程B<em>操作</em>该控件。rnrn如果直接在线程间传递IWebbrowser2接口指针,则Navigate没有<em>问题</em>,页面(包含vbscript和javascript脚本)可正常显示,但通过execScript()动态执行脚本就会返回[0x8000FFFF]错误,且对页面中的对象通过GetIDsOfNames()获取接口ID时,也返回[0x8000FFFF]错误;rn如果用Marshel或者GIT的方式在线程间传递接口指针,则Navigate返回[0x800706F4]错误。rn不知道为什么会出现上述现象?rn
多线程操作数据问题
数据库中我储蓄了十万条数据, 现在我需要处理这一些数据, 如果我一次性都查出来, rn会报内存不足的, dao.queryAllRecorders()rnrn现在我想每次查1000条数据进行处理rndao.queryAllRecorders(int start, int end)rnrn但又想提高速度, 就想写三个线程进行数据<em>操作</em>,rn比如: 线程1<em>操作</em>第1-1000条数据,线程2<em>操作</em>2-2000条数据,线程3<em>操作</em>3-3000rn如果一个线程跑完,就需要执行下一个1000未处理的数据, rn但整个处理过程中只能有三个运行的线程,rn这个程序怎么写呢?rnrnpublic void Task implements Runnable rnrn private int start;rnrn private int end;rnrn public static void run() rn for (int i=start, i
多线程操作ConcurrenthashMap问题
求教各位大神帮忙!!rn我想通过对ConcurrenthashMap的并发<em>操作</em>了解他的性能rnrnConcurrenthashMap先预置10万条测试数据rnrn1,怎么用一个线程去对ConcurrenthashMap做get<em>操作</em>,get后再把此次get的数据在ConcurrenthashMap中remove掉。记录下使用时间rnrn2,怎么用<em>多线程</em>(3个线程足以)对于ConcurrenthashMap做get<em>操作</em>,get后再把此次get的数据在ConcurrenthashMap中remove掉,记录下使用时间rnrnrn这样我就可以通过他们的使用时间来对比rnrn拜托给位大神能给我demo,小弟在线等待。。
多线程操作CListCtrl的问题
做一个网络服务器程序,一个CListCtrl显示连接信息,显示客户端的IP地址,端口号,连接时间,服务时间,等信息.像服务时间这种需要每秒增加的信息,想用一个线程去更新,不知道会不会有<em>问题</em>,或者有没有更好的解决办法!谢谢大家!
问个多线程操作问题
诸如 执行大批量数据更新的时候,子线程 执行sql<em>操作</em>,主线程上显示更新的进度rnrn比如显示已经更新多少条rnrn就是主线程和新开线程这之间的交互怎么做合适?rnrn现在的法子是,主程序一个timer ,一个label。子线程执行<em>操作</em>后对label赋值,然后timer对其进行访问 来显示rnrn
多线程操作链表问题
有两个线程<em>操作</em>同一个链表rnlist list;rnrn 线程1rnlist::iterator it = list.begin();rn加锁rnfor(; it != list.end; it++)rnrn printf("%d", *it);rnrn解锁rnrn线程2rnlist::iterator it = list.begin();rn加锁rnfor(; it != list.end; it++)rnrn if((*it) == 1)rn rn list.erase(it);rn break;rn rnrn解锁rn有什么<em>问题</em>么?这么写..谢谢
多线程操作XML的问题
我采用<em>多线程</em><em>操作</em>XML,经常出现 “*.XML 正由另一进程使用,因此该进程无法访问该文件”的提示,不知道如何解决。我用的是XmlDocument.Load();和XmlDocument.Save(); 在此请教CSDN上的各位高手
多线程操作ACCESS的问题
2个线程<em>操作</em>ACCESS,1个线程执行INSERT后,另外1个线程UPDATE,为什么有时候能更新有时候又找不到对应的记录呢。通过跟踪,发现虽然进行了INSERT,UPDATE的时候并没有对应的记录。通过查数据表,发现INSERT确实是运行。rn请问各位大虾如何解决?下面是日志:rn处理中:UPDATE TB_SMSMT_LOG SET FRESULT='True',FSENDTIME=NOW() WHERE FMSGID=160168rnINSERT INTO TB_SMSMT_LOG (FMSGID,FMOBILE,FMSG,FATTIME,FPROCESS) VALUES (160169,'15918706602','IbatisNet 是另外一种优秀的Java O/R mapping 框架,当前版本是1.2 。目前属于apache的一个子项目了。','2007-3-27 9:56:56',2)rnDELETE FROM TB_SMSMT WHERE FID=160169rnSELECT COUNT(0) FROM TB_SMSMT_LOG WHERE FMSGID=160169rn搜索到记录数:1rn处理中:UPDATE TB_SMSMT_LOG SET FRESULT='True',FSENDTIME=NOW() WHERE FMSGID=160169rnINSERT INTO TB_SMSMT_LOG (FMSGID,FMOBILE,FMSG,FATTIME,FPROCESS) VALUES (160170,'15918706617','IbatisNet 是另外一种优秀的Java O/R mapping 框架,当前版本是1.2 。目前属于apache的一个子项目了。','2007-3-27 9:56:56',2)rnDELETE FROM TB_SMSMT WHERE FID=160170rnSELECT COUNT(0) FROM TB_SMSMT_LOG WHERE FMSGID=160170rn搜索到记录数:0rn处理中:UPDATE TB_SMSMT_LOG SET FRESULT='True',FSENDTIME=NOW() WHERE FMSGID=160170rnINSERT INTO TB_SMSMT_LOG (FMSGID,FMOBILE,FMSG,FATTIME,FPROCESS) VALUES (160171,'15918706626','IbatisNet 是另外一种优秀的Java O/R mapping 框架,当前版本是1.2 。目前属于apache的一个子项目了。','2007-3-27 9:56:56',2)rnDELETE FROM TB_SMSMT WHERE FID=160171rnSELECT COUNT(0) FROM TB_SMSMT_LOG WHERE FMSGID=160171rn搜索到记录数:0
关于多线程操作问题
一个登录程序,连接数据库的部分可能要几秒时间,怎么程序在这段时间内有个一个等待的画面,等连接上了,出了结果了再把这画面取消。谢谢大家。
delphix和多线程操作问题
我想用delphix和<em>多线程</em>的技术来做东西,不指点可靠安全不,请老大指点一下rn相关的函数和主要事项。
多线程操作ListView问题..
具体是我有一个工具类 里面通过代理调用了 from1类中的一个函数rn这个工具类里的方法是<em>多线程</em>调用的..rn这个函数是对ListView控件进行添加一条数据.但是现在<em>问题</em>是数据在添加的时候,有的项无法显示rn有可能是多个线程同时<em>操作</em>ListView控件的后果但是我不知道该怎么解决..rn如果你知道任何有关解决这个<em>问题</em>的方法,或者觉得我哪里没有说清楚请告诉我..谢谢
多线程操作API的问题
有一个用C写的DLL,解密用。我在C#里调用它。一般情况下没<em>问题</em>,如果开<em>多线程</em>调用,那么返回出来的结果就不对了。有谁遇到过吗?怎么解决呢
多线程操作数据库方面的问题
我开了三个线程,每个线程一个数据库连接,rn当我在WINDOW XP下运行时,三个线程开始起来后,总线程数是7个,过一会儿变成只有6个线程,rn我想其中可能是有一个数据库方面的线程退出了。rn程序经过测试,都很正常。rnrn当我在WIN2000下面运行时,三个线程开始起来后,总线程数是10个,过一会儿变成只有9个,rn在这个平台下运行不了多长时间,程序就会当掉,rn不知高手遇到这种<em>问题</em>没有???rn还是<em>操作</em>系统方面的<em>问题</em>????rn或是数据库方面的<em>问题</em>????rnrnrn要说明的是我的程序是控制台,只有一个主线程
多线程操作文本文件的问题
<em>多线程</em><em>操作</em>一个文本文件,遍历其中的每一行,放入线程中处理,删除处理正常的行,保留未正常处理的行,请大家给点思路。
多线程操作MemoryStream问题
我开了5个线程从网络上下载图片,rn[code=C#]rnprivate void ThreadJob()rn byte[] responseArray;rn WebClient myWebClient=new WebClient();rn responseArray = myWebClient.DownloadData("xxx.jpg");rn MemoryStream stream = new MemoryStream(responseArray);rn Bitmap bit = new Bitmap(stream);rn bit.Save("c:\\xx.jpg");rn rn[/code]rn当我多个线程在执行这段代码时,每次保存点图片并不是当前WebClient 下载过来的图片,好像线程间相互干扰了,不知道是不是这个原因,我举个例说,可能是第一个线程的用WebClient下载的图片,被第三个线程的MemoryStream 保存下来了,如果是这个原因,要怎么解决呢,能不能不用MemoryStream来读取二进制字节组,保存图片?
多线程操作hashtable的问题
大家都知道hashmap是线程不安全的,hashtable是线程安全的,如果涉及<em>多线程</em>,推荐用hashtable。 但在一边插入,一边遍历查询的时候,hashtable会报错: Java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:...
多线程操作webBrowser的问题
Thread.Sleep(r.Next(2000, 3000));rnwebBrowser1.Document.GetElementById("wd").SetAttribute("value", "测试");rnrnrnrnrn<em>多线程</em>下<em>操作</em>webBrowser1 报错 (指定的转换无效)rn谁告诉我下怎么办?希望给个有建设性的答案,谢谢。
ClistView多线程操作问题
按钮 start:rnvoid CListViewView::OnWStart() rnrn SetTimer(100,1000,NULL);rnrn按钮 stop:rnvoid CListViewView::OnWStop() rnrn // TODO: Add your command handler code herern KillTimer(TIME_ID);rnrnOnTimer:rnvoid CListViewView::OnTimer(UINT nIDEvent) rnrn // TODO: Add your message handler code here and/or call defaultrn rn CListCtrl & m_list = GetListCtrl();rn m_list.RedrawWindow();rnrn HANDLE hThread; rn DWORD dwThreadId; rn hThread=CreateThread(NULL,NULL,ThreadFunc, NULL,0,&dwThreadId); rnrn CListView::OnTimer(nIDEvent);rnrn线程函数:rnDWORD WINAPI ThreadFunc(LPVOID lpParam)rnrn CMainFrame *MainFram=(CMainFrame *)AfxGetMainWnd();rn CListViewView * ListView = (CListViewView *)( MainFram->GetActiveView());rn CListCtrl & m_list =ListView->GetListCtrl();rn CString cs;rn rn for ( int i = 0; im_nCount ,i);rn m_list.InsertItem(ListView->m_nCount ++,cs);rn rn rn //m_list.RedrawWindow();rn return 0;rnrn但程序的现象是 打开程序不点击开始就会有一次线程函数的执行。rn点击不点击start都是没有效果的stop也是,但是点击一行list的数据才会执行一次线程函数,列出数据。这是什么情况?rnrnrn[img=http://www.cctry.com/forum.php?mod=attachment&aid=ODMzNXxmNDVlNjVlOHwxMzAzMTgxNzUzfDU4NjA%3D&noupdate=yes][/img]
多线程操作数据的问题??
大概有200个线程同时对数据库进行读写,线程锁已经加了,在程序运行一段时间之后,突然会出现异常,进入catch(...)代码段,再过一会程序就直接down掉,rnrn线程里面执行sql的函数如下:rnbool CCollectThread::ExecSql(CString strSql)rnrn Lock::scoped_lock guard(m_mutex);rnrn _CommandPtr pCommand;rn _variant_t vNull;rnrn bool nRlt = true;rnrn tryrn rn pCommand.CreateInstance(__uuidof(Command));rn pCommand->ActiveConnection = m_pConn;rn pCommand->CommandType = adCmdText;rn pCommand->CommandText = (_bstr_t)strSql;rn vNull.vt = VT_ERROR;rn vNull.scode = DISP_E_PARAMNOTFOUND;rnrn pCommand->Execute(&vNull, NULL, adCmdUnknown);rnrn rn catch(_com_error &e)rn rn CString strError;rn _bstr_t bstrDescription(e.Description());rn strError.Format("访问数据库发生错误。\r\n错误的描述:%s\r\n执行的sql: %s\r\n",(LPCTSTR)bstrDescription,strSql);rn GetSysCurrentTime(m_strTime);rn CLogFile::Instance().WriteErrorLog((LPSTR)(LPCTSTR)m_strTime, "CCollectThread::Run()", (LPSTR)(LPCTSTR)strError);rn nRlt = false;rn rn catch(CMemoryException &e)rn rn TCHAR szCause[255];rn GetSysCurrentTime(m_strTime);rn e.GetErrorMessage(szCause, 255);rn CLogFile::Instance().WriteErrorLog((LPSTR)(LPCTSTR)m_strTime, "CCollectThread::Run()", szCause);rn return false;rn rn catch(...)rn rn CString strError;rn strError.Format("ExecSql发生错误。\r\n执行的sql: %s\r\n",strSql);rn GetSysCurrentTime(m_strTime);rn CLogFile::Instance().WriteErrorLog((LPSTR)(LPCTSTR)m_strTime, "CCollectThread::Run()", (LPSTR)(LPCTSTR)strError);rn nRlt = false;rn rnrn return nRlt;rnrnrnm_pConn是主进程传入的,之前已经做过“套间”处理,即调用了CoMarshalInterThreadInterfaceInStream和CoGetInterfaceAndReleaseStreamrnrn请高手们帮忙分析一下会有什么样的原因导致程序在运行一段时间之后突然崩溃?rnrn
MYSQL 多线程连接问题
可以让多个线程同时连接MYSQL 并且使用同一账号端口吗?? 为什么
mysql 多线程问题
这是线程中的处理 sql的代码,<em>多线程</em>的时候,尤其是50个线程以上的时候 <em>mysql</em>_conn 经常为非法的值(空,错误的表达式),异常出现<em>mysql</em>_queryrn那里,如果只把<em>mysql</em>_store_result 放在线程中执行,则到这里异常//说读内存地址错误,rnrn中的 0x00437852 处未处理的异常: 0xC0000005: 读取位置 0xccccd070 时发生访问冲突 。rnrn不知道rn是我本身设计有<em>问题</em>还是<em>mysql</em><em>多线程</em><em>操作</em>的有要注意的地方,希望在这方面有rn开发经验的大虾帮忙看看,谢谢。rnrn<em>mysql</em>_init(wkif-><em>mysql</em>_conn);rntry rn if(!<em>mysql</em>_real_connect(wkif-><em>mysql</em>_conn, \rn db_host_,db_user_,db_pwd_,db_name_,3306,NULL,0) )rn rn puts("DBAccess Error::can not connect DB,<em>mysql</em>_error");rnrn return -1; rn rn rn catch (...)rn rn puts("DBAccess::get_record_set <em>mysql</em>_real_connect exception");rn return -1;rn rnif (<em>mysql</em>_query(wkif-><em>mysql</em>_conn,wkif->sql_tem))rn rn puts("DBAccess Error::<em>mysql</em>_query failed");rn return -1;rn rnif(!(*(wkif->results) = <em>mysql</em>_store_result(wkif-><em>mysql</em>_conn)))rn rn puts("DBAccess Error::<em>mysql</em>_store_result failed");rnrn return -1; rn rn
多线程update mysql问题
@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class JunitTest { @Autowired private ProduceOrderRepository p; @Autowired private S...
多线程访问Mysql的问题
我写了一个<em>多线程</em>连接Mysql的程序。20个线程循环检索数据库来测试自己的程序是否正确。rn在Debug下运行我的程序,没有<em>问题</em>,20个线程全部连接到Mysql。rn在Release下运行我的程序,出现<em>问题</em>,有一部分连接到Mysql,一部分连接失败。rn连接函数是标准Mysql提供的接口<em>mysql</em>_real_connect(...)。rn请问,这是怎么回事?
Pthon对mysql操作多线程以及socket
一 Pyrhon对于<em>mysql</em>的<em>操作</em> 1. 环境搭建 首先需要搭建数据库环境以及MySQLdb的包环境并将其导入到python中: 在shell中执行以下<em>操作</em>(可能需要先将ipython安装): yum install mariadb-server yum install gcc...
mysqlmysql多线程
<em>mysql</em>是一个单进程<em>多线程</em>的数据库,在innodb中大概有一下几种线程: (1)Master Thread:这是主线程,非常核心,其用途主要是做一些周期性的任务,在不同的innodb版本其功能不同,这里就看最早期的版本。早起的innodb Master线程会有两种频率的任务,一种是每1秒一次的,还有每10秒一次的。 每1秒的工作: 1.刷新日志; 2.刷新至多100个脏页 3.合并插入...
多线程操作
线程与进程 线程的创建和启动 线程的生命周期 对线程进行<em>操作</em> 线程的同步
多线程操作
目录   一,基本<em>操作</em> 1,线程的命名与取得 2,线程休眠方法--sleep() 3,线程让步方法--yield() 4,等待线程终止方法--join() 5,线程停止的方法 二,线程的优先级 三,守护线程 一,基本<em>操作</em> 1,线程的命名与取得 1)通过构造方法在创建线程时设置线程名称 public Thread(String name) public Thread(Ru...
MySql多线程
我在C++下面使用<em>多线程</em>对数据库进行大量数据的插入时,发生数据丢失的情况,C++中<em>多线程</em>是有锁控制的,但是MySql中就不是很清楚是如何控制的。rn如何可以将MySql中的表格进行锁定呢? 比方说在一个线程在对数据库进行<em>操作</em>的时候,避免另一个线程的<em>操作</em>呢?rn是使用锁定吗?
MySQL多线程
在进行数据库读写的时候,一般情况下都是单线程的,但是如何在<em>操作</em>的时候也使用<em>多线程</em>呢?使用<em>多线程</em>安全吗?<em>多线程</em>是如何保证安全的呢?如果有代码的话,贴出累或者把代码共享给我学习学习。。。多谢!
asp.net多线程操作word问题
一个题库系统需要将word试题逐题添加到数据库中,目前用的方法是将word的每道题先转换成html格式文件,将其html标签保存到数据库中,现在功能实现了,但发现一个<em>问题</em>是,asp.net读取word逐题转成html时需要耗费很长时间,管理员不能做其它工作。所以我想问问大家这种情况可以用<em>多线程</em>写吗,怎么写。谢谢大家指点迷津!
vc多线程操作数据库的问题
小弟想做一个winsock服务端,通过<em>多线程</em>来和下位机交换数据,还要把数据存到数据库中,请问应该怎么做rn每个线程都要打开和数据库的连接还是只打开一个就行了,请大侠指点rn还有怎么同步
关于多线程操作数据库的问题
数据库中有两个表:table1、table2rn然后有两个线程:thread1、thread2rnthread1对table1进行读<em>操作</em>,thread2对table2进行写<em>操作</em>。rn如果是thread2先执行了,在thread2执行期间执行了thread1,就会出<em>问题</em>。rn具体<em>问题</em>是,在thread1对table1读之前进行了一个判断,判断table1是否存在,判断的结果为“不存在”。rn但如果thread1先执行,或thread2执行结束后再执行thread1就没有<em>问题</em>。rn判断<em>操作</em>是对"sqlite_master"表进行查询。rn难道对不同的表读写还需要异步吗?rn
C#多线程操作内存的问题
我要编写一个winform程序,打算用BackgroundWorker类分配一个线程进行内存监控,如果有文本数据就拷到一个文件里面,但事与愿违,用该方法无法访问内存,返回的结果总是空。rn是不是<em>多线程</em>不能访问内存呢?还是有什么地方需要注意?rn如果是BackgroundWorker类机制的<em>问题</em>,大家有什么别的办法实现我要的效果。即实时监控内存,一有我要的数据,就将该数据拷到某文件里。
初级mysql操作问题
小弟初学php不是很会用<em>mysql</em>,不知<em>mysql</em>的底层文件格式是怎么样的,只是现在拿到一个源码中见到他的数据库目录下有rn很多.FRM,.MYD,.MYI文件,另外还有一个db.opt文件,请教这些都是些什么文件?rnrn然后我想当然的把源码里德tb_administrator.frm,tb_administrator.MYD,tb_administrator.MYI文件copy到我MYSQL\data\<em>mysql</em>目录下,然后用命令想去查询这个tb_admnistrator表(我用的show columns命令),但命令返回说这个表不存在rnrn简单就想请教各位大虾,要怎么样我才能查询到源码中的数据库信息呢?
php mysql操作问题
数据库链接成功返回,在执行<em>mysql</em>i_query时抛出异常,求解!rn错误信息:rnFatal error: Uncaught exception 'DB_Exception' with message '更新失败:No database selected' in...rnphp脚本:rnquery($sql);rnvar_dump($data);rn?>rn数据库单例成功返回rnclass DbFactory rn private static $db = array();rnrn public static function getInstance($dbKey = 'DEFAULT') rn if (array_key_exists($dbKey, self::$db)) rn return self::$db[$dbKey];rn else rn $newdb = new MysqliDb($dbKey);rn if ($newdb->connect()) rn self::$db[$dbKey] = $newdb;rn return $newdb;rn else rn return false;rn rn rn rnrnrn $qrs = <em>mysql</em>i_query($this->_conn, $sql, $quick ? MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT);rn if (!$qrs) rn throw new DB_Exception('查询失败:' . <em>mysql</em>i_error($this->_conn));rn else rn return $qrs;rn rnrnrn
java 操作Mysql问题……
我使用mm.<em>mysql</em>2.0.4驱动, 如何在java中使用<em>mysql</em>中的lock tables 语句!rnrn谢谢! 如何解决commit/rollback<em>问题</em>呢?
CommonDBUtils操作mysql问题
大家好! rn我使用 rnCommonDBUtils<em>操作</em><em>mysql</em>数据库! rn可以执行select语句,但是不能执行insert语句 rn一下是异常rnjava.sql.SQLException: Feature not implemented Query: insert into Computer_Ignorance_Article(CIA_Title,CIA_Link,CIA_Type_Id) values(?,?,?) Parameters: [1, 1254321163453.html, 0] rnat org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:540) rnat org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:597) rnat org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:653) rnat databaseUtils.MysqlUtils.update(MysqlUtils.java:48) rnat interfaceHandler.MysqlDAOHandler.adminAddArticle(MysqlDAOHandler.java:96) rnat servlet.AdminAddArticle.doPost(AdminAddArticle.java:49) rnrnrn但是我单独执行insert的sql语句确没有任何<em>问题</em>!
问个多线程操作变量的问题??
一个容器里面存放数据,需要被查询,后台开个线程往容器里面添加数据,怎么做到同步?rn是个win32 sdk的程序,不知道能不能用mfc的那套东西?rn
多线程操作同一个方法的问题
<em>多线程</em><em>操作</em>同一个方法的<em>问题</em>,注意方法中不能有全局变量。
C#多线程操作的一个问题
在窗体上有一个listbox,用户可以向里面拖入文件,现在假设用户拖入了4个文件,rn点击了开始按钮,rn现在为了提高速度节省时间,想同时对这个4个文件进行处理,我知道如何创建线程,但暂时想不出如何同时开4个线程。rnrn[code=csharp]rn private void button1_Click(object sender, EventArgs e)rn rn Thread Th1 = new Thread(showForm2);rn for (int i = 0; i < listBox1.Items.Count; i++)rn rn Th1.Start(listBox1.Items[i]);rn rn rnrn public void showForm2(object o)rn rn //处理代码rn [/code]rnrn我目前的知识水平能想到的办法就是rnrn[code=csharp]rn private void button1_Click(object sender, EventArgs e)rn rn Thread Th1 = new Thread(showForm2);rn Thread Th2 = new Thread(showForm2);rn Thread Th3 = new Thread(showForm2);rn Thread Th4 = new Thread(showForm2);rn Th1.Start(listBox1.Items[0].ToString());rn Th1.Start(listBox1.Items[1].ToString());rn Th1.Start(listBox1.Items[2].ToString());rn Th1.Start(listBox1.Items[3].ToString());rn [/code]rn这种办法虽然可以运行,但如果想同时开线程处理10个,100个就不可行了,求指教如何多开线程处理listbox中拖入的文件,谢谢!
多线程守候操作效率问题
在一个程序中,要用多个线程来守候不同类型的事件处理,在设计之前,我先做了一个测试程序,测试程序很简单,就是在窗口中,启动了两个线程,然后在线程函数中用while()循环来守候事件,测试程序代码如下:rn[code=c]void CTestThreDlg::OnButton1() rnrn HANDLE hThread=CreateThread(NULL,0,SThreProc1,this,0,NULL);rn CloseHandle(hThread); rnrnrnvoid CTestThreDlg::OnButton2() rnrn HANDLE hThread=CreateThread(NULL,0,SThreProc2,(LPVOID)this,0,NULL);rn CloseHandle(hThread); rnrnrnrnDWORD WINAPI CTestThreDlg::SThreProc1(LPVOID lpParameter)rnrn while(true)rn rn rnrnrnDWORD WINAPI CTestThreDlg::SThreProc2(LPVOID lpParameter)rnrn while(true)rn rn rn[/code]rn程序运行后,我先启动第一个线程,发现CUP占用了50%,再启动第二个线程,CUP就占用了99%了。系统资源怎么占用了这么高,程序没法做下去了。rn我想问下<em>多线程</em>高手,像我这样需要用多个线程来守候不同事件进行处理,如何用<em>多线程</em>设计,上面这个占用CUP如此之高的原因是什么?如何改进?
C#操作mysql问题
string myConnstr = "Server=localhost:3306;User ID=root;Password=;Database=test;CharSet=utf8;";rn MySQLConnection conn = null;rn conn = new MySQLConnection(myConnstr);rn conn.Open();rn MySQLCommand commn1 = new MySQLCommand();rn commn1.CommandText = sqlstr;rn commn1.ExecuteNonQuery();rn conn.Close();rnrnrn报错:MySQLDriverCS Exception: Connection must be valid and open. rnrn大侠告诉我下怎么解决 谢谢rnrnrnrn我之前用的是 rnconn = new MySQLConnection(new MySQLConnectionString("localhost", "test", "root","").AsString); rnMySQLCommand commn = new MySQLCommand("set names utf8", conn);rn但是插入进去的是乱码rn我的<em>mysql</em>是utf8 的rnrnrnrnrnrnrn
关于对多线程操作问题
这是一段关于<em>多线程</em>的<em>问题</em>rnvoid __fastcall TForm1::ButtonClick(TObject *Sender)rnrn TWriteThread *WriteThread = new TWriteThread(true,sList->Text );rn WriteThread->FreeOnTerminate = true ;rn WriteThread->Priority = tpHigher;rn WriteThread->Resume() ;rn WriteThread->Suspend() ;rn TReadThread *ReadThread = new TReadThread(true);rn ReadThread->FreeOnTerminate = true ;rn ReadThread->Priority = tpHigher;rn ReadThread->Resume() ;rn ReadThread->Suspend() ;rn std::auto_ptr sStringList(new TStringList());rn int iMode ,iPosition ;rn Application->ProcessMessages() ;rn tryrn rn //sOrderString变量是从ReadThread线程里面得到的rn sStringList->Text = sOrderString; rn iMode = atoi( sStringList->Values["action"].c_str() );rn iPosition = atoi( sStringList->Values["position"].c_str() );rn Edit3->Text = IntToStr(iMode ) + "~~~" + IntToStr(iPosition);rn OperateAV(iMode,iPosition); //这里是对Form1上的MediaPlayer进行播放<em>操作</em>rnrn rnrnrn上面的两个线程分别是对发送过来的消息进行写和读,以便得到OperaterAV所有的参数,这里应该是一旦ReadThread->Resume()和WriteThread->Resume()之后,线程的所有权就还给了Form1主线程,可是为什么一旦执行之后,真个界面都死掉,无法进行另外的<em>操作</em>。rn 麻烦各位有这方面经验的大虾指教一下。
c#多线程操作datagridview问题
我用c#winform的datagridview进行数据显示,由于数据是实时更新的(datagridview的更新方式是使用timer,后来使用的是<em>多线程</em>)。当数据量大的时候会导致界面假死。无论是<em>多线程</em>还是timer都会使界面假死。请各位帮忙,在线等。
多线程操作窗体控件的问题
Private Delegate Sub SetUserList(ByVal Index As Integer, ByVal subItemIndex As Integer, ByVal str As String)rnrn Private OnLine As New SetUserList(AddressOf SetUserListItem)rnrnrn Public Sub SetUserListItem(ByVal itemIndex As Integer, ByVal subItemIndex As Integer, ByVal str As String)rnrn Dim obj(2) As Objectrnrn obj(0) = itemIndexrnrn obj(1) = subItemIndexrnrn obj(2) = strrnrn If frm_Server.lst_User.InvokeRequired Thenrnrn frm_Server.lst_User.Invoke(OnLine, obj)rnrn Elsernrn frm_Server.lst_User.Items(itemIndex).SubItems(subItemIndex).Text = strrnrn End Ifrnrn End Subrnrn把线程函数写在窗口类中调用这个委托就可以实现修改,把线程函数写在模块中,再调用此委托的时候frm_Server.lst_User.InvokeRequired 这个值一直返回FALSE,不知道怎么解决
求解:多线程操作ado问题
我在工作线程中处理ado对象。初始化com+ 都成功就是。而且 <em>多线程</em>中的功能<em>操作</em>都执行成功。rn我的主线程中也 ado对象也是在运行之中的。。。那位高手帮解答下。rn//启动主线程成功rnCWinThread* pThread;rnHANDLE pThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)MyThread,NULL,0,NULL);rnCloseHandle(hThread);rn//rnUINT MyThread(LPVOID lpParam)rnrn///*rnCStdioFile dataStore;rnrnCString somecode; //也可采用LPTSTR类型,将不会删除文本中的\n回车符rnBOOL bIsOk = dataStore.Open("f:\\log.txt",rnCFile::modeCreate | CFile::modeWrite |CFile::modeNoTruncaternrn);rnrndataStore.SeekToEnd();rndataStore.WriteString("\n程序开始运行");rn//*/rnrnrn///*rnAfxEnableControlContainer(0);rnrnif (CoInitialize(0)==S_OK)rnrn///*rndataStore.SeekToEnd();rndataStore.WriteString("\n初始化com库成功");rn//rnrnrnelsernrnrnrnrnrn*/rn_ConnectionPtr m_pConnection;rnbool DbMark=DbTheadInit( m_pConnection);//**********就是//******<em>问题</em>所在 m_pConnection一直为空rnrnrn///*rn//<em>多线程</em>调试***********************************************************************rndataStore.SeekToEnd();rnif (m_pConnection==NULL)rnrnrnCTime time = CTime::GetCurrentTime();rnCString m_strTime = CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S");rndataStore.WriteString("\n" + m_strTime + " m_pConnection的值为 空" );rnrnrnelsernrndataStore.WriteString("\nm_pConnection 不为空");rnrn//*******************************************************************************rn//*/rnrnrnrnrnrnbool DbTheadInit(_ConnectionPtr m_pConnection)rnrn//AfxOleInit();//初始化COM库rn//_ConnectionPtr m_pConnection;rnrnrn///*rnCStdioFile dataStore;rnCString somecode; //也可采用LPTSTR类型,将不会删除文本中的\n回车符rnBOOL bIsOk = dataStore.Open("f:\\log1.txt",rnCFile::modeCreate | CFile::modeWrite |CFile::modeNoTruncaternrn);rnAfxEnableControlContainer(0);rnif (CoInitialize(0)==S_OK)rnrndataStore.SeekToEnd();rndataStore.WriteString("\ncom初始化成功" );rnrnelsernrndataStore.SeekToEnd();rndataStore.WriteString("\ncom初始化不成功" );rnrnrnCString g_Admin,g_Pass,m_strSQL;rn//*/rntryrnrnrnCString OutTime,ConStr,UserName,PassWord;rnrn//从配置文件初始化数据连接rn::GetPrivateProfileString("AdoInit","ConnectionTimeout","0",OutTime.GetBuffer(MAX_PATH),MAX_PATH,"f://MConfig.ini");rn::GetPrivateProfileString("AdoInit","ConnectionStr","",ConStr.GetBuffer(MAX_PATH),MAX_PATH,"f://MConfig.ini");rn::GetPrivateProfileString("AdoInit","UserName","",UserName.GetBuffer(MAX_PATH),MAX_PATH,"f://MConfig.ini");rn::GetPrivateProfileString("AdoInit","PassWord","",PassWord.GetBuffer(MAX_PATH),MAX_PATH,"f://MConfig.ini");rn///*rndataStore.SeekToEnd();rndataStore.WriteString("\nOutTime : " + OutTimern+"\n ConStr : " + ConStrrn+ "\n UserName " + UserNamern+ "\n PassWord " +PassWordrn);rnrn//*/rnrn//根据配置文件中的配置 初始化ado连接rnm_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象rnm_pConnection->ConnectionTimeout=3;///设置超时时间为3秒rnm_pConnection->Open((_bstr_t)"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.qy",(_bstr_t)UserName,(_bstr_t)PassWord,0);rnrncatch(_com_error e)///捕捉异常rnrnm_pConnection=NULL;rnCString strComError; \rnstrComError.Format("错误编号: %08lx\n错误信息: %s\n错误源: %s\n错误描述: %s", \rne.Error(), \rne.ErrorMessage(), \rn(LPCSTR) e.Source(), \rn(LPCSTR) e.Description()); \rnrnrn///*rndataStore.SeekToEnd();rndataStore.WriteString("\n" +strComError );rn//*/rnrnrnrnreturn false ;rnrnrnrn///*rndataStore.SeekToEnd();rndataStore.WriteString("\n成功执行" );rn//*/rnreturn true;rnrnrn没办法,<em>多线程</em>调试 特别麻烦。自己都是在那里不停写日志 才查出m_pConnection 老为空rn哎。郁闷其实后面的相关<em>操作</em>都执行完了。rn这个是跟数据库打交道的。rnrn难道我主线程把一个连接一直打开。还能影响到工作线程。。。rn我用的数据库是一个access数据库做ado连接
sqlite多线程操作注意问题
1. sqlite数据库使用面临的<em>问题</em>:<em>多线程</em>同时访问       Thread A和Thread B 同时创建SQLiteDatabas,来<em>操作</em>数据库(主要是insert<em>操作</em>):       下面的DataBaseHelper extends SqliteOpenHelper       * Thread A:          Context context = getApplicat
一个多线程操作控件属性的问题
好像在什么书上得到信息:<em>多线程</em>中<em>操作</em>控件属性不安全,最近用C#也出现这种<em>问题</em>。rnrn我想在一个新定义的类Class1里面启动一个线程,<em>操作</em>窗体类Form1上面的两个Panel控件,当然这两个控件我已经修改属性为public(便于<em>操作</em>),结果总是不能正常工作。当然,我对Panel的<em>操作</em>是显示视频数据,如果不是连续的修改属性,好像正常哦!rn各位高手知不知道什么原因导致?
关于多线程操作控件的问题
我原本的代码如下rn[code=csharp]rn string url_index;//章节页链接rn List strs;//章节编号rn string BookName;//书名rn int jdStart,jdEnd;//开始结束的章数rn string strAll;//小说文本rn Thread t;//新线程rn private void download()rn rn strAll = "";//储存小说文本,全局变量rn int count = jdEnd - jdStart + 1;//计算起止章节的差rn this.progressBar1.Maximum = count;//设置progressBar的Maximum值rn for (int i = jdStart - 1; i < jdEnd; i++)rn rn string url = "http://www.bxwx8.org/b/" + this.textBox3.Text + "/" + strs[i] + ".html";//每章小说的链接rn string strHTML = NetHelper.GetHtmlCode(url);//获取网页源码rn if (strHTML == null)rn rn MessageBox.Show("下载出错,下载第"+(i+1)+"章下载失败,请到网页检查该章节是否可以访问\r\n失败原因:连接接资源失败,错误代码404","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);rn return;rn rn string dataStr = HTMLCodeReggex.GetBXWX(strHTML);//取得每一章小说文本部分rn strAll += dataStr;rn this.progressBar1.Value++;rn this.label1.Text = "下载进度" + (i + 1) + "/" + count;rn rn if (!this.checkBox1.Checked) SaveStrHTMLRe(strAll);rn else SaveStrHTMLWRe(strAll);rn xg(jdStart + count, jdEnd + count);rn rn private void button1_Click(object sender, EventArgs e)rn rn t = new Thread(download);rn t.IsBackground = true;rn t.Start(); // 开始在新线程中进行下载rn rn[/code]rn现在的情况是开始执行download()后progressBar1会正常显示,但是label1显示不正常,不是一个个加上去而是会跳。rn目前我通过设置[code=csharp]CheckForIllegalCrossThreadCalls = false;[/code]虽然实现了不假死,但是百度出来的都说这样不好,用百度出来的方法也还是没能解决假死<em>问题</em>rn请问我该怎么改才能让程序界面不假死?rn最好能直接给出代码,初学者,会的不多,见谅!
多线程操作SQLSERVER数据库的问题
VC通过_ConnectionPtr链接数据库,建立一个全局链接,然后起五个线程,三个线程插入同一张表a,第四个线程查询这个表a,第五个线程更新这个表a,运行没有<em>问题</em>,这是他们<em>操作</em>的次数不同,我想问几个<em>问题</em>rn1.多个线程同时<em>操作</em>一张表为什么不会造成数据库的死锁,不是说<em>多线程</em><em>操作</em>要加锁限制吗?rn2.<em>操作</em>数据库时什么情况下会造成死锁rn3.像这个同时多个线程对数据库进行insert、delete、update、select的情况在大家工作中应该经常遇到,大家一般都是怎么做的?rn我的测试相关代码如下:rn就是建立一个简单的对话框程序,在OnInitDialog中打开连接代码如下rn[code=c]rn//OnInitDialog中的连接代码rnCString strSQL;rn HRESULT hr;rn tryrn rn hr=m_pConnection.CreateInstance(__uuidof(Connection));rn strSQL="Provider=SQLOLEDB;Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=MyTest;Data Source=YOS-0222140854";rn if(SUCCEEDED(hr))rn rn hr=m_pConnection->Open(_bstr_t(strSQL),"","",adModeUnknown);rn rn rn catch(_com_error e) //捕捉异常 rn rn CString errormessage;rn errormessage.Format(_T("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage()));rn AfxMessageBox(errormessage);//显示错误信息rn rn return; rn rn AfxMessageBox("连接成功");[/code]rnrn点击开始按钮启动五个线程相关代码如下:rn[code=c]UINT CTestThreadDlg::Thread1(LPVOID lpParam)rnrn CTestThreadDlg *pCurDlg = (CTestThreadDlg *)lpParam;rn while (WaitForSingleObject(pCurDlg->m_hEvent,0)!=WAIT_OBJECT_0)rn rn tryrn rn CString strSql = "insert into Table_1 values('000000000',1)";rn COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);rn _ConnectionPtr pConnection = pCurDlg->m_pConnection;rn pConnection->Execute(_bstr_t(strSql),vtOptional,-1);rn pCurDlg->m_iCount1++;rn OutputDebugString("线程一<em>操作</em>成功\n");rn rn catch(_com_error* e)rn rn CString errormessage;rn errormessage.Format("***********************线程一数据库使用失败:%s\n", e->ErrorMessage());rn OutputDebugString(errormessage);rn rn rn return 0;rnrnUINT CTestThreadDlg::Thread2(LPVOID lpParam)rnrn CTestThreadDlg *pCurDlg = (CTestThreadDlg *)lpParam;rn while (WaitForSingleObject(pCurDlg->m_hEvent,0)!=WAIT_OBJECT_0)rn rn tryrn rn CString strSql = "insert into Table_1 values('1111111111',2)";rn COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);rn _ConnectionPtr pConnection = pCurDlg->m_pConnection;rn pConnection->Execute(_bstr_t(strSql),vtOptional,-1);rn pCurDlg->m_iCount2++;rn OutputDebugString("线程二<em>操作</em>成功\n");rn rn catch (_com_error* e)rn rn CString errormessage;rn errormessage.Format("***********************线程二数据库使用失败:%s\n", e->ErrorMessage());rn OutputDebugString(errormessage);rn rn rn return 0;rnrnrnUINT CTestThreadDlg::Thread3(LPVOID lpParam)rnrn CTestThreadDlg *pCurDlg = (CTestThreadDlg *)lpParam;rn while (WaitForSingleObject(pCurDlg->m_hEvent,0)!=WAIT_OBJECT_0)rn rn tryrn rn CString strSql = "insert into Table_1 values('2222222222',3)";rn COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);rn _ConnectionPtr pConnection = pCurDlg->m_pConnection;rn pConnection->Execute(_bstr_t(strSql),vtOptional,-1);rn pCurDlg->m_iCount3++;rn OutputDebugString("线程三<em>操作</em>成功\n");rn rn catch (_com_error* e)rn rn CString errormessage;rn errormessage.Format("***********************线程三数据库使用失败:%s\n", e->ErrorMessage());rn OutputDebugString(errormessage);rn rn rn rn return 0;rnrnrnUINT CTestThreadDlg::Thread4(LPVOID lpParam)rnrn CTestThreadDlg *pCurDlg = (CTestThreadDlg *)lpParam;rn while (WaitForSingleObject(pCurDlg->m_hEvent,0)!=WAIT_OBJECT_0)rn rn tryrn rn _CommandPtr pCommandPtr;rn pCommandPtr.CreateInstance("ADODB.Command");rn _ConnectionPtr pConnectionPtr = pCurDlg->m_pConnection;rn pCommandPtr->ActiveConnection = pConnectionPtr;rn pCommandPtr->CommandText = "select * from Table_1";rn _RecordsetPtr pRecordsetPtr = pCommandPtr->Execute(NULL,NULL,adCmdText);rn _variant_t vName = pRecordsetPtr->GetCollect((_variant_t)(long)0);//取得第一个字段rn CString sName = (LPCTSTR)_bstr_t(vName);rn pCommandPtr.Release();rn CString sText;rn sText.Format("查询结果:%s",sName);rn OutputDebugString(sText);rn OutputDebugString("\n");rn pCurDlg->m_iCount4++;rn OutputDebugString("线程四<em>操作</em>成功\n");rn rn catch (_com_error* e)rn rn CString errormessage;rn errormessage.Format("***********************线程四数据库使用失败:%s\n", e->ErrorMessage());rn OutputDebugString(errormessage);rn rn rn return 0;rnrnUINT CTestThreadDlg::Thread5(LPVOID lpParam)rnrn CTestThreadDlg *pCurDlg = (CTestThreadDlg *)lpParam;rn while (WaitForSingleObject(pCurDlg->m_hEvent,0)!=WAIT_OBJECT_0)rn rn tryrn rn CString strSql = "update Table_1 set age=100 where name='0000000000'";rn COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);rn _ConnectionPtr pConnection = pCurDlg->m_pConnection;rn pConnection->Execute(_bstr_t(strSql),vtOptional,-1);rn pCurDlg->m_iCount5++;rn OutputDebugString("线程五<em>操作</em>成功\n");rn rn catch (_com_error* e)rn rn CString errormessage;rn errormessage.Format("***********************线程五数据库使用失败:%s\n", e->ErrorMessage());rn OutputDebugString(errormessage);rn rn rn rn return 0;rnrnvoid CTestThreadDlg::OnButton1() rnrn // TODO: Add your control notification handler code herern OnButton1();rn ResetEvent(m_hEvent);rn m_iCount1=m_iCount2=m_iCount3=m_iCount4=m_iCount5=0;rn AfxBeginThread((AFX_THREADPROC)Thread1, reinterpret_cast(this));rn AfxBeginThread((AFX_THREADPROC)Thread2, reinterpret_cast(this));rn AfxBeginThread((AFX_THREADPROC)Thread3, reinterpret_cast(this));rn AfxBeginThread((AFX_THREADPROC)Thread4, reinterpret_cast(this));rn AfxBeginThread((AFX_THREADPROC)Thread5, reinterpret_cast(this));rn[/code]rn点击停止按钮,停止线程<em>操作</em>rn[code=c]void CTestThreadDlg::OnButton3() rnrn // TODO: Add your control notification handler code herern SetEvent(m_hEvent);rn CString sText;rn sText.Format("线程一插入%d\r\n线程二插入%d\r\n线程三插入%d\r\n线程四查询%d\r\n线程五更新%d",m_iCount1,m_iCount2,m_iCount3,m_iCount4,m_iCount5);rn AfxMessageBox(sText);rn m_pConnection->Release();rn m_pConnection.Release();rn[/code]rnrn现在运行正常,运行10分钟都正常,没有长时间测试,请大牛解释rn[img=https://img-bbs.csdn.net/upload/201402/22/1393083417_952251.png][/img]
mysql 操作问题请教
Hi,各位高手,请教一个Mysql表创建相关的<em>问题</em>,请指点:rn创建一个表 有 多行相同属性的列,有没有参数可以避免重复写 多次列的属性?rn或者有没有一种可以设置 默认列属性的参数 供使用?
Mysql 操作问题
怎样<em>操作</em>MYSQL如建表空间建表,运行SQL语句之类的<em>操作</em>
vc操作mysql问题
我要编写一个类,实现将两个数据库合并。因为数据库中表很多,所以不能挨个列举表明,字段名。请问有没有一种方法,当我select出数据以后,能把它直接插入另一个数据库表中,是整条记录插入,而不是每个字段单独赋值。
vc 多线程操作list 问题
struct T_Package_Infornrn int package_len;rn CString src_data;rn T_Package_Info()rn rn package_len = 0;rn src_data = "";rn rn;rntypedef struct T_Package_Info SPackage_Info, *PSPackage_Info;rntypedef std::list PPackage_InfoList;rntypedef std::list SPackage_InfoList;rnPPackage_InfoList m_packList;rnrn// 串口线程接收到串口数据后通过消息将数据传给OnCommRXCharMessage()函数:rnLRESULT CTPanel_TestDlg::OnCommRXCharMessage(WPARAM wparam, LPARAM lparam)rnrn CString str1, str2, str3, str4, str5; rn int len = (DWORD)lparam;rn //BYTE *tmpStr = new BYTE[len+1];rn BYTE *tmpStr = reinterpret_cast(wparam);rn if((tmpStr == NULL) || (len2500))rn return NULL; rn //void* data_len = malloc( len +4 +1);rn //SPackage_Info *package = (SPackage_Info*)data_len;rn SPackage_Info* package = new T_Package_Info();//new(data_len)SPackage_Info;rn //m_packList.reverse();rn EnterCriticalSection(&m_AnalyzeCommunicationSync);rn package->package_len = len ;rn //方式一赋值时,后面线程读数时,每次只有前4个字节正确,不会有内存泄露rn package->src_data = tmpStr;rn //如下为方式二赋值:后面线程读数时,每次都正确读取,但是有内存泄露,程序崩溃。rn //memcpy( package->src_data.GetBuffer(), tmpStr, len);rn m_packList.push_back(package);rn TRACE("+++++++++ininin++++len = %d+++++\n", len);rn LeaveCriticalSection(&m_AnalyzeCommunicationSync);rn return NULL;rnrnrnUINT CTPanel_TestDlg::AnalyzeThread(LPVOID pParam)rnrn CTPanel_TestDlg *dlg = (CTPanel_TestDlg*)pParam;rn rn MSG msg;rn while( 1 )rn rn //系统消息循环rn //while( ::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE))rn // ::DispatchMessage(&msg);rn if(WAIT_OBJECT_0 == WaitForSingleObject(dlg->m_hAnalyzeEvent, 0))rn return 0;rn if( !dlg->m_packList.empty() )//m_packList队列非空rn rn EnterCriticalSection(&dlg->m_AnalyzeCommunicationSync);rn PPackage_InfoList::iterator itNext, it = dlg->m_packList.begin();rn PPackage_InfoList::iterator itEnd = dlg->m_packList.end();rn while(it != itEnd)rn rn itNext = it;rn itNext ++;rn SPackage_Info *infopackage = (*it); rn int len = infopackage->package_len;rn BYTE *str = (BYTE*)infopackage->src_data.GetBuffer() ;rn TRACE("-----out--outout----len = %d----\n", len);rn //dlg->Decode_Data(*infopackage);//Decode_Data(len, str);rn //上函数中赋值如用方式二,则下句delete会报如下图错误。如屏蔽下句会有内//存泄露,直至程序崩溃rn delete infopackage;rn dlg->m_packList.erase(it);rn it = itNext;rn rn LeaveCriticalSection(&dlg->m_AnalyzeCommunicationSync);rn rn rn return 0;rnrn[img=桌面/list_error.jpg][/img]
多线程操作EXCEL问题求教
如下程序,开两个线程,向同一个worksheet中的不同行写入数据,rn在第一遍执行的时候,两个线程中会随机有一个线程报错,再次执行就正常了,求高手指点。rn[img=https://img-bbs.csdn.net/upload/201408/05/1407229692_534725.png][/img]rnrnclass ExPararn rn private Microsoft.Office.Interop.Excel.Worksheet _WorkSheet;rnrn public Microsoft.Office.Interop.Excel.Worksheet WorkSheetrn rn get return _WorkSheet; rn set _WorkSheet = value; rn rnrn private int _StartRow;rnrn public int StartRowrn rn get return _StartRow; rn set _StartRow = value; rn rnrn private String _Value;rnrn public String Valuern rn get return _Value; rn set _Value = value; rn rn rnrn public partial class Form2 : Formrn rn public Form2()rn rn InitializeComponent();rn rnrn private int x = 2;//线程计数,完成一个减一rn Microsoft.Office.Interop.Excel.Application ex;rn Microsoft.Office.Interop.Excel.Workbook wb;rn Microsoft.Office.Interop.Excel.Worksheet ws;rn /// rn /// 开始程序rn /// rn private void ThreadExcel()rn rn tryrn rn ex = new Microsoft.Office.Interop.Excel.Application();rn wb = ex.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);rn ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];rnrn x = 2;rn Thread t1 = new Thread(new ParameterizedThreadStart(T));rn ExPara e1 = new ExPara();rn e1.WorkSheet = ws;rn e1.StartRow = 1;rn e1.Value = "测试线程1";rn t1.Start(e1);rnrn Thread t2 = new Thread(new ParameterizedThreadStart(T));rn ExPara e2 = new ExPara();rn e2.WorkSheet = ws;rn e2.StartRow = 5;rn e2.Value = "测试线程2";rn t2.Start(e2);rn rn catch (Exception e)rn rn MessageBox.Show(e.Message);rn rn rnrn /// rn /// 执行rn /// rn /// rn private void T(object ex)rn rn tryrn rn ExPara e = ex as ExPara;rn (ws.Cells[e.StartRow, 1] as Microsoft.Office.Interop.Excel.Range).Value2 = e.Value;rn rn catch (Exception e1)rn rn MessageBox.Show((ex as ExPara).Value);rn MessageBox.Show(e1.Message);rn rn finallyrn rn x--;rn ShowExcel();rn rn rnrn /// rn /// 显示表格rn /// rn private void ShowExcel()rn rn tryrn rn if (x == 0)rn rn ex.Visible = true;rn rn rn catch (Exception e)rn rn MessageBox.Show(e.Message);rn rn finallyrn rn if (x == 0)rn rn if (ws != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);rn if (wb != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(wb);rn if (ex != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(ex);rn GC.Collect();rn rn rn rn
多线程操作FORM控件的问题
我用C#写的WINDOW FORM的应用程序,其中使用了多个线程,由于线程的逻辑比较复杂,我使用了类来封装这些逻辑代码,然后调用,这其中我遇到了几个疑惑的<em>问题</em>,请教各位,谢谢,我在写这个程序之前从来没用过C#,而用MFC。rn1、我在FORM1.CS的类里建立了几个PUBLIC的函数,我在线程类中怎样调用到这些函数?总不能去NEW FORM1()吧?也不能建立一个STATIC的函数啊?rn2、其次在线程类的代码中怎样给FORM中的控件赋值或者获取属性?由于无法访问到FORM.CS中的函数,自然也无法获取到控件的类了,很疑惑这个<em>问题</em>,难道真的要每次都要将这个控件传递给类的构造函数?rn3、我在多个线程中都要对FORM的控件进行<em>操作</em>,怎样避免同时访问的<em>问题</em>?在C#中没有LOCK的功能?
请教关于多线程操作问题
原<em>问题</em>: 在窗口内后台定时检索数据 并将数据列表显示在树型列表内rnrn在网上找了一些资料,不过对<em>多线程</em><em>操作</em>还是很糊涂rnrn我是这样做的:rn........rnSystem.Threading.TimerCallback tcallback = new System.Threading.TimerCallback(MyThread);rntimer = new System.Threading.Timer(tcallback,iNum.ToString(),2000,5000);rnrnprivate void AddNode(object text)rnrn TreeNode node = new TreeNode(text.ToString());rn this.treeView1.Nodes.Add(node);rn iNum = iNum + 1;rnrnprivate void MyThread(object text)rnrn threadDelegate td = new threadDelegate(this.AddNode);rn this.Invoke(td,new object[] text);rnrnrn请教一下:rn1、对于这类<em>问题</em>是不是这种效率好一点 rn2、如果是通过System.Windows.Forms.Timer 控制线程定时执行 如何处理工作线程的休眠 rn 不然 每次执行时都要创建一个线程rn3、Invoke、BeginInvoke、EndInvoke 之间使用的区别 rn
基于SSH框架的水印验证码下载
一个很好的水印效果的验证. 集合了使用struts2的时候在action里面进行获取。 相关下载链接:[url=//download.csdn.net/download/hubowei7/2155364?utm_source=bbsseo]//download.csdn.net/download/hubowei7/2155364?utm_source=bbsseo[/url]
TortoiseSVN For Delphi下载
TortoiseSVN For Delphi 相关下载链接:[url=//download.csdn.net/download/xiancai728/3882948?utm_source=bbsseo]//download.csdn.net/download/xiancai728/3882948?utm_source=bbsseo[/url]
C语言 GetVersion和GetVersionEx API函数获取操作系统版本信息.cpp )下载
179.GetVersion和GetVersionEx API函数获取操作系统版本信息.cpp 相关下载链接:[url=//download.csdn.net/download/zjj4131/6554583?utm_source=bbsseo]//download.csdn.net/download/zjj4131/6554583?utm_source=bbsseo[/url]
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制
我们是很有底线的