MT5和trans2quik.dll - 页 6 12345678910111213...18 新评论 Yuriy Asaulenko 2018.12.08 18:39 #51 prostotrader:不,我只需要同步3个线程(基本上写一个同步器),但 我不知道如何。好吧,那就只剩下旗子了。我们设置一个旗子,等待其他人完成活动,停下来并移除他们的旗子,做事,移除旗子。嗯,还有旗帜优先的逻辑,显然。 我不会停止DDE,而是让它写到缓冲区,这样就不会有任何损失。 prostotrader 2018.12.08 20:04 #52 Yuriy Asaulenko:好吧,那就只剩下旗帜了。竖起一面旗子,等待其他人完成他们的活动,停下来并取下他们的旗子,做完生意,取下旗子。嗯,还有旗帜优先的逻辑,显然。 不过我不会停止DDE,让它写到缓冲区,这样就不会有什么损失了。换句话说,同步器应该对传入的函数进行缓冲,这些函数将根据优先级被执行? Yuriy Asaulenko 2018.12.08 20:21 #53 prostotrader:所以同步器需要对传入的函数进行缓冲,这些函数将根据优先级被执行?不,只是根据相关的标志和它们的优先级来暂停线程。在这个变体中,根本不需要其他东西。 第二种选择是等待线程的函数终止,然后通过其标志停止它。这可能是必要的,例如,更新asc-bid、指标和其他我们需要的东西。 例如,标志值。 0 - 线程处于空闲状态。 1 - 线路接通。 2 - 请求停止所有低优先级的线程。 把它设置为2,等到所有的线程都变成0,执行程序,把它设置为0或1。通过这个标志,所有其他线程恢复工作。 prostotrader 2018.12.08 20:45 #54 Yuriy Asaulenko:不,只是通过相关的标志和它们的优先级来暂停线程。这个选项完全不需要其他东西。 第二种选择是等待,直到线程的函数完成,然后通过其标志停止它。这可能是必要的,例如,更新asc-bid、指标和其他我们需要的东西。 例如,标志值。 0 - 线程处于空闲状态。 1 - 线路接通。 2 - 请求停止所有低优先级的线程。 把它设置为2,等到所有的线程都变成0,执行程序,把它设置为0或1。通过这个标志,所有其他线程恢复工作。你自己写道,暂停DDE是不好的 Yuriy Asaulenko 2018.12.08 20:58 #55 prostotrader:你自己写道,暂停一个DDE是不好的我只是不理解你。 我所做的是这样的。 1.服务器(我有TCP服务器)在其线程中不断地将数据写到集合中,就像后进先出。没有必要阻止它。 数据在另一个线程中从集合中读取/删除,并写入DataTable(它类似于数据库表,但在内存中)。这条线可能会被暂停,如果它妨碍了。 3.另一个线程从DataTable中读取数据进行分析。这个线程不会干扰线程2,因为它是由select获取的,除了2以外没有人向这个表写数据。如果这条线索妨碍了你,你也可以停止它。 我不需要暂停任何事情,因为我用一个工具工作,线程3被切换到提交-执行订单和跟踪交易。 prostotrader 2018.12.08 21:47 #56 Yuriy Asaulenko:我只是不理解你。 我所做的是这样的。 1.服务器(我有一个TCP服务器)在其线程中不断地将数据写到集合中,就像后进先出。没有必要阻止它。 数据在另一个线程中从集合中读取/删除,并写入DataTable(它类似于数据库表,但在内存中)。这条线可能会被暂停,如果它妨碍了。 3.另一个线程从DataTable中读取数据进行分析。它不会干扰线程2,因为它是由select获取的,除了2以外没有人在向这个表写东西。如果这条线索妨碍了你,你也可以停止它。 我不需要暂停任何事情,因为我用一个工具工作,线程3被切换到提交-执行订单和跟踪交易。你很幸运,我有52种工具,所以我必须换。 Yuriy Asaulenko 2018.12.08 22:06 #57 prostotrader:你很幸运,我有52种乐器,所以我必须转换我认为对所有52种工具的分析是在一个线程中完成的?或者是吗? 什么被用作存储?在我的例子中,由于有多用户访问,锁定是不必要的,而且阅读也不会影响到写作。 唯一需要被阻止的是Child对trans2quik的共享访问。而且,只有在一组线程的情况下,才会有孩子。你可以通过在一个单独的线程中组织trans2quik并在事件中调用它,同时锁定事件处理程序直到请求完成。其余的不能达到)。 Aleksey Vyazmikin 2018.12.08 23:21 #58 prostotrader:完全放弃了连接MT5和Kvik的想法,只解决了Kvik(DEE服务器+trans2quik.dll)。真可惜。作出这一决定的原因是什么?在两个程序之间接收/传输数据是否有严重障碍? prostotrader 2018.12.10 02:43 #59 Yuriy Asaulenko:我认为对所有52种工具的分析是在一个流中完成的?或者说不是吗? 什么被用作存储?在我的例子中,在多用户访问的情况下,锁定是不必要的,而且阅读也不会影响到写作。 唯一要阻止的是Child对trans2quik的共享访问。而且,只有在一组线程的情况下,才会有孩子。你可以通过在一个单独的线程中组织trans2quik并在事件中调用它,同时锁定事件处理程序直到请求完成。其余的就不说了)。不,分析本身是在Child中进行的(分别为每个工具)Selector(1,2)选择哪个机器人来发送数据并检查 存储 - 只是存储在内存中的表 prostotrader 2018.12.10 02:46 #60 Aleksey Vyazmikin:这真是太糟糕了。这个决定的原因是什么,在两个程序之间接收/传输数据是否有严重的障碍?弄得一塌糊涂就是没有意义。 使用MT5,我们需要在专家顾问中的代码和DLL,它将接收数据。 只使用Quick,我们只有一个应用(见图与图)。 12345678910111213...18 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不,我只需要同步3个线程(基本上写一个同步器),但
我不知道如何。
好吧,那就只剩下旗子了。我们设置一个旗子,等待其他人完成活动,停下来并移除他们的旗子,做事,移除旗子。嗯,还有旗帜优先的逻辑,显然。
我不会停止DDE,而是让它写到缓冲区,这样就不会有任何损失。
好吧,那就只剩下旗帜了。竖起一面旗子,等待其他人完成他们的活动,停下来并取下他们的旗子,做完生意,取下旗子。嗯,还有旗帜优先的逻辑,显然。
不过我不会停止DDE,让它写到缓冲区,这样就不会有什么损失了。
换句话说,同步器应该对传入的函数进行缓冲,这些函数将根据优先级被执行?
所以同步器需要对传入的函数进行缓冲,这些函数将根据优先级被执行?
不,只是根据相关的标志和它们的优先级来暂停线程。在这个变体中,根本不需要其他东西。
第二种选择是等待线程的函数终止,然后通过其标志停止它。这可能是必要的,例如,更新asc-bid、指标和其他我们需要的东西。
例如,标志值。
0 - 线程处于空闲状态。
1 - 线路接通。
2 - 请求停止所有低优先级的线程。
把它设置为2,等到所有的线程都变成0,执行程序,把它设置为0或1。通过这个标志,所有其他线程恢复工作。
不,只是通过相关的标志和它们的优先级来暂停线程。这个选项完全不需要其他东西。
第二种选择是等待,直到线程的函数完成,然后通过其标志停止它。这可能是必要的,例如,更新asc-bid、指标和其他我们需要的东西。
例如,标志值。
0 - 线程处于空闲状态。
1 - 线路接通。
2 - 请求停止所有低优先级的线程。
把它设置为2,等到所有的线程都变成0,执行程序,把它设置为0或1。通过这个标志,所有其他线程恢复工作。
你自己写道,暂停DDE是不好的
你自己写道,暂停一个DDE是不好的
我只是不理解你。
我所做的是这样的。
1.服务器(我有TCP服务器)在其线程中不断地将数据写到集合中,就像后进先出。没有必要阻止它。
数据在另一个线程中从集合中读取/删除,并写入DataTable(它类似于数据库表,但在内存中)。这条线可能会被暂停,如果它妨碍了。
3.另一个线程从DataTable中读取数据进行分析。这个线程不会干扰线程2,因为它是由select获取的,除了2以外没有人向这个表写数据。如果这条线索妨碍了你,你也可以停止它。
我不需要暂停任何事情,因为我用一个工具工作,线程3被切换到提交-执行订单和跟踪交易。
我只是不理解你。
我所做的是这样的。
1.服务器(我有一个TCP服务器)在其线程中不断地将数据写到集合中,就像后进先出。没有必要阻止它。
数据在另一个线程中从集合中读取/删除,并写入DataTable(它类似于数据库表,但在内存中)。这条线可能会被暂停,如果它妨碍了。
3.另一个线程从DataTable中读取数据进行分析。它不会干扰线程2,因为它是由select获取的,除了2以外没有人在向这个表写东西。如果这条线索妨碍了你,你也可以停止它。
我不需要暂停任何事情,因为我用一个工具工作,线程3被切换到提交-执行订单和跟踪交易。
你很幸运,我有52种工具,所以我必须换。
你很幸运,我有52种乐器,所以我必须转换
我认为对所有52种工具的分析是在一个线程中完成的?或者是吗?
什么被用作存储?在我的例子中,由于有多用户访问,锁定是不必要的,而且阅读也不会影响到写作。
唯一需要被阻止的是Child对trans2quik的共享访问。而且,只有在一组线程的情况下,才会有孩子。你可以通过在一个单独的线程中组织trans2quik并在事件中调用它,同时锁定事件处理程序直到请求完成。其余的不能达到)。
完全放弃了连接MT5和Kvik的想法,只解决了Kvik(DEE服务器+trans2quik.dll)。
真可惜。作出这一决定的原因是什么?在两个程序之间接收/传输数据是否有严重障碍?
我认为对所有52种工具的分析是在一个流中完成的?或者说不是吗?
什么被用作存储?在我的例子中,在多用户访问的情况下,锁定是不必要的,而且阅读也不会影响到写作。
唯一要阻止的是Child对trans2quik的共享访问。而且,只有在一组线程的情况下,才会有孩子。你可以通过在一个单独的线程中组织trans2quik并在事件中调用它,同时锁定事件处理程序直到请求完成。其余的就不说了)。
不,分析本身是在Child中进行的(分别为每个工具)Selector(1,2)选择哪个机器人来发送数据并检查
存储 - 只是存储在内存中的表
这真是太糟糕了。这个决定的原因是什么,在两个程序之间接收/传输数据是否有严重的障碍?
弄得一塌糊涂就是没有意义。
使用MT5,我们需要在专家顾问中的代码和DLL,它将接收数据。
只使用Quick,我们只有一个应用(见图与图)。