标题:NetMTVFP(1.02版)
只看楼主
iswith
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:154
专家分:101
注 册:2013-5-14
结帖率:4.76%
已结贴  问题点数:20 回复次数:27 
NetMTVFP(1.02版)
*多线程调用实例V1.0(共享)
*20221116
*1.只能传一个参数,不能传送VFP对象,因为他都是字符串([参数1,参数2,参数3...]
*2.线程为单线程单元(STA)模式
*3.线程未完成VFP应该是不能退出(多测几次看会不会崩溃)

*这个实例功能还是很弱鸡,很多功能占时没有开放出来,等我测试好再说,
*最起码要得到线程的结果,一般这个结果可能是一个cursor,或返回值(这些暂时都没有)
*暂时你可以用一个本地的Cursor来共享多线动作后的数据。


*20221117V1.01( 收费版: 398 )
*!*    此时线程尚未处于运行状态。调用Start()函数启动线程,当前线程继续执行。
*!*    调用Join()函数可以阻塞当前线程,直到调用Join()的线程终止。
*!*    Thread类创建的线程默认为前台线程,可以通过IsBackground属性设置其为前台或后台线程。
*!*    还可以通过Priority属性设置线程的优先级。
*!*    如需中止线程,调用Abort()方法,在调用该方法的线程上抛出ThreadAbortException异常,
*!*    以结束该线程。线程内部可以通过try catch捕获该异常,在catch模块中进行一些必要的处理,
*!*    如释放持有的锁和文件资源等,
*!*    还可以通过Thread.ResetAbort()方法阻止线程的中止。
*!*    但是通常来说,应当慎重使用Abort()方法,如果在当前线程中抛出该异常,
*!*    其结果是可预测的,但是对于其他线程,它会中断任何正在执行的代码,有可能中断静态对象的生成,造成不可预测的结果。
* 一般来说线程的多少是根据CPU核心来决定的,并不是越多就越好!多开一个线程可能会吃掉1MB的虚拟内存。

*1.增加 线程多入参
*2.增加 获取 回参
*3.增加 设置线程基本属性
*4.增加 VFP启动线程 指令

*20221119V1.02 ( 收费版: 498 )
*1.增加 获取线程X  中的cursor数据
*注意一次性获取Cursor数据集指令需要足够的内存,因为他是一个VFP数组,你不能把将一个非常大的SQlexec结果集放在线程上,(意思就是放小的结果集)
*原因1:线程肯定没有当前VFP进程性能优越。
*原因2:太大的结果集取回需要大的内存支持,当然你可以使用语句像访问当前“cursor.字段”来访问cursor的结果集。
NetMTVFP.rar (289.03 KB)


*预期:计划直接不用编译VFP 的DLL,可以直接运行任何一个VFP语句为异步线程指令(理论可行,实际未知。。。)
*
搜索更多相关主题的帖子: VFP 结果 线程 cursor 调用 
2022-11-19 13:47
foxfans
Rank: 4
等 级:贵宾
威 望:11
帖 子:90
专家分:278
注 册:2021-10-23
得分:3 
vfp2c32.fll  已经开源,里面有多线程,回调函数等开发案例,完全开源免费可控。
vfp2c32.zip (3.93 MB)

https://

[此贴子已经被作者于2022-11-19 21:28编辑过]

2022-11-19 21:11
sam_jiang
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:542
专家分:781
注 册:2021-10-13
得分:3 
不知道你这玩意的具体用途,价格不菲啊。。。
2022-11-19 21:55
iswith
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:154
专家分:101
注 册:2013-5-14
得分:0 
我知道大楖有!但没有细看他的实现逻辑!你说说原理有些想实现的地方卡着,我也参考参考。。。。。。
2022-11-19 22:14
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:3 
以下是引用foxfans在2022-11-19 21:11:05的发言:
vfp2c32.fll  已经开源,里面有多线程,回调函数等开发案例,完全开源免费可控。

应该没有可比性
它们都可以吃(vfp 都能用),但原料、味道不一样
vfp2c32 是基于 win32api 的
楼主的产品从名字上看应该是基于 .Net 框架的

不过话说回来,目前的 vfp 版本也被限制在 Windows 平台上,因此区别也就在哪个容易下口、哪个虫子更少
2022-11-19 22:50
iswith
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:154
专家分:101
注 册:2013-5-14
得分:0 
以下是引用csyx在2022-11-19 22:50:18的发言:


应该没有可比性
它们都可以吃(vfp 都能用),但原料、味道不一样
vfp2c32 是基于 win32api 的
楼主的产品从名字上看应该是基于 .Net 框架的

不过话说回来,目前的 vfp 版本也被限制在 Windows 平台上,因此区别也就在哪个容易下口、哪个虫子更少

说话好精辟呀!内联ASM C,这个很早就有!大家原理都差不多!个人觉得我写的简单好些!~v~.........,目标不一样
2022-11-19 23:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
有没有不通过VFP的COM运行VFP代码的多线程?
如果没有的话,看来实质应该是一样。
简单说就是在线程过程中调用VFP写的控件



2022-11-19 23:58
foxfans
Rank: 4
等 级:贵宾
威 望:11
帖 子:90
专家分:278
注 册:2021-10-23
得分:0 
DMULT vfp2c32 这些都是开源且方便调用的Vfp多线程库,自己研究琢磨吧,好东西靠研究和封装,这是别人做出来的效果。
2022-11-19 23:58
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 8楼 foxfans
用鼠标按住窗口右上角的关闭“X”不放手拖动看看,如果窗口的东东不会静止就是真正的“不卡”。
2022-11-20 00:06
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:3 
回复 8楼 foxfans
好!
2022-11-20 06:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510701-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.213762 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved