Foxtable(狐表)用户栏目专家坐堂 → 异步等待执行


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

主题:异步等待执行

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


加好友 发短信
等级:超级版主 帖子:105926 积分:538693 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/21 9:46:00 [只看该作者]

请描述您业务处理的逻辑,就是具体想实现什么样的功能。不是让您描述您的开发过程

如果只是处理每个编号的数据,这些编号之间没有什么相关联的,一个函数就够了,把编号数据的处理逻辑都放到Text_2函数

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2019/2/21 10:01:00 [只看该作者]

表一:编号01,02,03,10,20,30.....

表二:特性编号P-1,P-2,P-3....

表三:相关,经验规格,样本容量,样本时机,测量设备,SPC

这三张表合成一张表

如果我在函入中传入 01|P-1,那么生成结果:

01|P-1 相关

01|P-1 经验规格

01|P-1 样本容量

01|P-1 样本时机

01|P-1 测量设备

01|P-1 SPC

  如果传入01|P-2,那么生成结果:

01|P-相关
01|P-2 经验规格
01|P-2 样本容量
01|P-2 样本时机
01|P-2 测量设备
01|P-2 SPC

 


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


加好友 发短信
等级:超级版主 帖子:105926 积分:538693 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/21 10:19:00 [只看该作者]

一个函数就够了

按7楼实例来说,删除Text_2函数,直接

for循环条件

  Functions.AsyncExecute("Text_1","编号|特性编号")
next


 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2019/2/21 10:37:00 [只看该作者]

未指定的错误
.NET Framework 版本:2.0.50727.8937
Foxtable 版本:2018.9.9.1
错误所在事件:
详细错误信息:

未指定的错误

 

如果我用TEXT_2 就不会报错


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


加好友 发短信
等级:超级版主 帖子:105926 积分:538693 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/21 11:17:00 [只看该作者]

函数代码有问题,不过实在看不懂您的逻辑

如果按照12楼的逻辑,这样就可以了。

Dim sdt As String = Args(0)

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "SELECT * From {表C} where 合成信息 = '" & sdt & "'"
dt = cmd.ExecuteReader(True)

cmd.CommandText = "SELECT * From {APQP基本资料项目下拉} "
Dim dt2 As DataTable = cmd.ExecuteReader()

Dim fr As DataRow
For Each dr As DataRow In dt2.DataRows
    fr = dt.Find("合成信息='" & sdt & "' And 影响因素 = '" & dr("项目") & "'")
    If fr Is Nothing Then
        fr = dt.AddNew
        fr("合成信息") = sdt
        fr("影响因素") = dr("项目")
    End If
Next

dt.save

不过要注意的是,内部表不支持在异步函数中插入数据,必须使用外部数据源测试

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2019/2/21 11:33:00 [只看该作者]

代码我测过,传入数据量少时(3-5个循环),没有问题,但我有循环语句,可能开的线程比较多时,才会报错;其次,我用了Text_2,BeginSyncExecute再调用,也不会有问题.


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


加好友 发短信
等级:超级版主 帖子:105926 积分:538693 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/21 11:56:00 [只看该作者]

我用了Text_2,BeginSyncExecute再调用,也不会有问题.  --- 您项目这个用法完全就是全部,异步完全没有起作用。和直接使用function.Execute没有任何区别

可能开的线程比较多时,才会报错  -- 那就把循环也放到异步函数里,开一个线程就可以了。

或者分批,100个编号开一个线程处理

 回到顶部
总数 17 上一页 1 2