Foxtable(狐表)用户栏目专家坐堂 → 【未解决】多线程,操作表,报错


  共有3327人关注过本帖树形打印复制链接

主题:【未解决】多线程,操作表,报错

帅哥哟,离线,有人找我吗?
ycli368
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:998 积分:10453 威望:0 精华:0 注册:2012/12/11 14:25:00
【未解决】多线程,操作表,报错  发帖心情 Post By:2015/10/10 19:16:00 [只看该作者]

多线程
A线程在给A表添加数据
B线程加载B表会报 表加载失败
[此贴子已经被作者于2015/10/11 15:12:25编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
ycli368
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:998 积分:10453 威望:0 精华:0 注册:2012/12/11 14:25:00
  发帖心情 Post By:2015/10/10 19:31:00 [只看该作者]

一开始用的 计划 管理,发现界面也是假死状态,
采用线程就遇到这个问题

 回到顶部
帅哥哟,离线,有人找我吗?
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By:2015/10/10 20:33:00 [只看该作者]

跨线程操作,要用委托

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/11 10:55:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
ycli368
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:998 积分:10453 威望:0 精华:0 注册:2012/12/11 14:25:00
  发帖心情 Post By:2015/10/11 11:07:00 [只看该作者]

谢了

 回到顶部
帅哥哟,离线,有人找我吗?
ycli368
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:998 积分:10453 威望:0 精华:0 注册:2012/12/11 14:25:00
  发帖心情 Post By:2015/10/11 14:54:00 [只看该作者]

想通过多线程或计划管理实现多任务同时操作的目的,目前来看是失败的

1.多线程设计是想多任务同时操作的,现在是一个线程在从CSV读取数据写到datatable中,且这个时间特别久,数据量较大,会导致其他加载表执行失败
"
Dim t As Table = e.Form.Controls("Table1").Table

'''''''''''''''t.Fill("Select *  fro m     creditinquiry where 1 = 2",Conn,False)


t.Cols("quirytime").DataCol.SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)"

-----另外一个窗口数据写入开始,这个窗口打开就报quirytime不存在,说明没加到数据
t.AllowEdit = False
ConfigTable(t.Name,t)
'Forms("frmWangwangLogin").show()
[此贴子已经被作者于2015/10/11 15:03:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/11 16:12:00 [只看该作者]

测试没问题,有问题请上传例子测试

 

全局代码

 

Public Sub thread_sub1(ByVal obj As Object)
    functions. Execute("多线程操作", obj)
End Sub

 

内部函数

 

Do While vars("stop") = False
    Dim nr As Row = CurrentTable.addnew
    nr(0) = 123456
Loop

 

调用

 

vars("stop") = False
Dim nthread As New System.Threading.Thread(AddressOf thread_sub1)
nthread.start(Nothing)

 

------- http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=74090&skin=0

 


 回到顶部