关于线程的问题.(50分)

  • 主题发起人 DiamondKing
  • 开始时间
D

DiamondKing

Unregistered / Unconfirmed
GUEST, unregistred user!
程序中一直监听某端口. 如果有数据从该端口传入 ,就开启一个线程,作些处理并将这些数据存储到
后端数据库中.因为对线程的使用毫无经验,书上说子线程不可以访问Vcl(需通过同步来解决),
我该怎么通过Ado组件把数据存到后端呢?
在子线程中必须要访问主线程单元的某个函数(因为传输的数据是经过格式化的,必须按一定
的格式来读). 该如何访问呢?可以访问吗?
急!
 
自己定义一个message,
将受到的信息发送给message
住程序接受message处理
 
使用synchronize同步主线程的函数
 
dcsdcs:能不能给的小的demo.如何调用主线程单元的函数呢?
cgzhang:我也知道synchronize,但不知道该如何写.
---------------------------------------------------
假设我收到的是一个ID(integer) ,主线程单元有个函数 function ChangeIDToName(ID:integer):string;
我在子线程调用它得到Name ,然后通过AdoTable将Name存到数据库.
请问该如何实现.
 
把主线程单元的某个函数放在子线程中
 
Zane:我到底该如何访问Ado呢?我的数据该如何存入到数据库中去.我到底可不可以访问
Ado呢?
 
你的后台数据库是什么?ChinaYA在
http://www.delphibbs.com/delphibbs/dispq.asp?lid=760828 中说Access是线程不安全
的,这个我没有试过,等我明天试试再告诉你,但是象Excel根本不允许多用户,我想它
肯定是不允许多线程访问的。
其实在Delphi中用线程真的是很简单的,从TThread继承一个类,然后重载它的Execute过程,
如果要处理线程不安全的VCL时用synchronize来调用就行了。
我要下班了,先简单说一下,明天再来。
你看看我上面给出的链接吧,希望能对你有帮助。
 
哪个example下面有个多线程排序的离子
 
在线程里动态创建,查一下以前的文章,例子很多;
用全文检索
 
其实我对数据库编程方面并不是太熟悉,呵呵,我查了一下书,我没有查到用ADO进行线程
操作的例子,只有BDE的,但是有一点可以确定的是:如果只需要把数据存入数据库而不需要
在前端显示的话,ADO应该是线程安全的,我想你可以动态创建ADOQuery,设置属性,然后
进行存取,应该不需要调用synchronize。
线程的问题搞定了没有?
 
各位高手:
我怎样判断我的线程当前是否已经结束了
最好能给点详细的代码
 
如果是仅指主线程,可以自己增加一个BOOL类型来判断!
多线程用WaitForMultipleObjects()即可!
 
教父:后端用的是Access,好像Sql的数据文件也可以象Access一样作为文件放置到客户端.
关于线程我想问题不算太大,主要是数据的存储.
有另外一个棘手的地方,我先测试一下,再讲.
 
就是关于Blob字段的读取,以前只是用过非动态创建的Ado组件中读取Blob.暂时搞定了
不过我还不知道这样是否能够很安全的访问Access.
 
YB_unique
能不能说的再详细一点
最好给点带源码的提示
多谢了
 
to DiamondKing:
关于TListview的问题我给你回了信,不知道你有没有收到,如果没有的话,请换个
信箱吧,很多263、163的朋友都不能收到我的信。
 
真的没有能够收到啊
那就发到JerryChouZW@yahoo.com.cn. 以后我用yahoo的mail发给你.
 
你的这个问题简直就是我手头的项目?呵呵!
 
那还不抓紧时间谢谢我.帮你找大侠们问出这么多的建议.
 
顶部