2015-04-20 45 views
0

我使用的是X_TRADER(TT API),以获得对某些产品,每当有新的产品价格来的时候,我打电话一个线程中的方法来更新/插入到数据库中,价格执行Thread.Start()方法的延迟是什么?

new Thread(()=>{ /*call method to insert/update*/ }).Start();

产品的价格与回调方法异步。什么可能是延迟插入数据库?有什么具体的东西我失踪?

+0

延迟有多大? – usr

+0

有时5分钟,有时不延迟(即以毫秒为单位) – kedarK

+0

显然,启动线程不需要5分钟。因此,该错误代码在此处未显示。现在的问题是无法回答的。 – usr

回答

0

你一定要想想那些处理产品更新的另一种方式。

想象一下,你会得到很高的更新频率,你会产生很多线程,这需要很多resources(内存,CPU使用率等)。

看看到其使用线程池用于许多并行线程的优化使用的任务并行库(TPL)。

您也可以收集在一个堆叠中的所有更新和更新数据库每5分钟一次(或更少)。这将节省许多线程,并且在短时间内不会打扰许多单个更新查询的数据库。

+0

感谢您的关注,我的要求是,我不应该堆叠数据和插入,要求也是这样的,实际上应该没有延迟。 TPL将在全部更新的情况下工作,但我的情况不同。 – kedarK

+0

啊我明白了。当您调试代码时,您是否可以验证执行数据库更新时是否发生延迟? –

+0

很难通过调试代码找出来,每秒都会有10-15个回调,实际上我正在寻找一种替代方法来在线程上立即执行一些操作 – kedarK