MQL中的异步和多线程编程 - 页 35 1...28293031323334353637383940 新评论 [删除] 2019.08.03 11:22 #341 Andrei Novichkov: 为什么不在文档中实际阅读关于该标志的内容?在https://en.cppreference.com 。以及在stackoverflow.com上有讨论的例子。我通常使用这些信息来源,我建议你也这样做。 那么,如果你不对自己的话语负责,你为什么要加入谈话?我感兴趣的是你的意见,而不是手册上的聪明人。别挡着我的路。没有你的指示,我也能读懂码头。我不需要所有这些future/promise/async的zoo来在一个线程中调用函数。 Andrei Novichkov 2019.08.03 11:27 #342 Vict: 如果你不回答你所说的话,那么你为什么要来参加谈话?我感兴趣的是你的意见,而不是手册上的聪明人。 别挡着我的路。没有你的指示,我也能读懂码头。而且我不需要所有这些future/promise/async的zoo来在一个线程中调用一个函数。 你没有任何意义。你不知道,我告诉你在哪里可以找到信息。而这是我的错。更经常地成为书籍的朋友。 [删除] 2019.08.03 11:54 #343 Andrei Novichkov: 你没有任何意义。你不知道,我告诉你在哪里可以找到信息。而这是我的错。更经常地成为书籍的朋友。 显然,你也不知道。为什么什么都不写?也许我不知道,这有什么大不了的?我要求提供正常的意见,他把我打发到某个地方去了。 列入黑名单,同志。 Andrei Novichkov 2019.08.03 12:01 #344 Vict: 显然,你也不知道。为什么什么都不写?也许我不知道,这有什么大不了的?我要求提供正常的意见,他把我打发到某个地方。 列入黑名单,同志。 我没有把你送到任何地方,我甚至没有考虑过这个问题。我不善于用自己的语言回答这样的问题,所以我写了关于文件的内容。再说一遍,有什么可冒犯的呢?但正如你所希望的那样,黑色,所以黑色。 [删除] 2019.08.03 12:08 #345 Andrei Novichkov: 我没有把你送到任何地方,我做梦也不会想到。我不善于用自己的语言来回答这样的问题,所以我写了关于文档的内容。再说一遍,有什么可冒犯的呢? 但正如你所希望的那样,黑色,所以黑色。 这方面的文件没有什么用处 std::launch::deferred 任务在第一次请求其结果时在调用线程上执行(懒惰评估)。 我真的不明白为什么我需要这样一个奇迹,我可以很容易地把一个函数的指针传到我需要的线程中,并在那里计算它,而不需要任何async( std::launch::deferred)。 Igor Makanu 2019.08.03 12:17 #346 Vict: 我真的不明白为什么我需要这样一个奇迹,我可以很容易地把一个函数的指针传到我需要的线程中,并在那里计算它,而不需要任何async( std::launch::deferred)。 可能偏离主题,但。 注意到微软的例子往往是写成自带文档的代码,所以他们写的是繁琐的结构,可以展开后替换成最终的值(比如,你看到代码,就能一目了然))。) HH:在C#的例子中,不幸的是,它不是这样的,有几次我写C#的时候,相信它实际上是C++的类似物,有一些使用OOP 的倾向,结果发现它不是这样的,它根本不是C++,通常你不能 "获得 "类的字段,而不投向基类,这就是为什么我不得不使用长的不方便的结构,一般来说,解析C#的现成库是一种真正的冒险 Andrei Novichkov 2019.08.03 12:24 #347 注意,默认情况下,这两个标志是一起应用的 延迟 | 异步,这就免除了开发者的责任。我们在这里谈论的是主线程函数,是的,你可以传递给它任何东西,包括一个指向函数的指针,或者一个函数载体,作为参数。而延迟标志甚至可以暗示函数的同步执行。看,我告诉过你,我不善于用自己的话来回答这种问题)。你会被弄得一团糟。通常情况下,你把所有东西都留在默认状态,而不去管这些标志,也许这是不正确的。 Yuriy Asaulenko 2019.08.03 12:30 #348 Igor Makanu:HH:不幸的是,C#的例子并不是这样的,有几次我用C#写的时候,确信它实际上是C++的类似物,有一些必须使用OOP 的倾向,结果发现它并不是这样的,它根本不是C++,往往你不能 "得到 "类的字段而不投到基类,所以你必须使用冗长繁琐的结构,总之,解析C#的现成库是一种真正的冒险 好吧,MS有非常好的关于Spurs的文档。一切都有详细的解释。不能抱怨。 Vladimir Simakov 2019.08.03 13:12 #349 Vict: 嗯,这方面的文件没有什么用处 我真的不明白为什么我需要这样一个奇迹,我可以很容易地把一个函数的指针传到我需要的线程中,并在那里计算它,而不需要任何async( std::launch::deferred)。 好吧,比如说,你需要一个函数用堆栈中的当前参数来计算数值,但不是现在,也不是在这个范围。所以,你创建了std::asinc,但是,问题来了,其中一个参数是一个全局变量 的引用或指针,但是在计算中你不需要这个变量的当前值,而是需要以后的值,这就是为什么要创建std::lounch::asinc和std::lounch::deferred bitmask,你可以现在把值传给函数,以后进行计算。 [删除] 2019.08.03 13:36 #350 Vladimir Simakov: 好吧,例如,你需要函数用堆栈中的当前参数来计算数值,但不是现在,也不是在这个范围内。所以,你创建了std::asinc,但问题来了,其中一个参数是一个全局变量 的引用或指针,但计算不需要这个变量的当前值,而是需要以后的值,这就是为什么创建了std::lounch::asinc和std::lounch::deferred bitmasks,你可以现在把值传给函数,以后进行计算。 因此,我可以把一个我传递给async的函数,绑定参数给它,并存储它,直到调用它的时候(或把它发送到另一个线程)。存储future还是std::bind()的输出有什么区别呢? 我想到的唯一合理的解释是--手动控制池中运行线程的数量(如果我们不相信默认的async|deferred)--例如,如果系统太忙,停止发送带有async标志的作业,发送deferred。 总的来说,我对async()的迟钝有点失望,我将创建自己的轻量级线程池,在我看来,它将会快得多。 1...28293031323334353637383940 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为什么不在文档中实际阅读关于该标志的内容?在https://en.cppreference.com 。以及在stackoverflow.com上有讨论的例子。我通常使用这些信息来源,我建议你也这样做。
那么,如果你不对自己的话语负责,你为什么要加入谈话?我感兴趣的是你的意见,而不是手册上的聪明人。别挡着我的路。没有你的指示,我也能读懂码头。我不需要所有这些future/promise/async的zoo来在一个线程中调用函数。
如果你不回答你所说的话,那么你为什么要来参加谈话?我感兴趣的是你的意见,而不是手册上的聪明人。 别挡着我的路。没有你的指示,我也能读懂码头。而且我不需要所有这些future/promise/async的zoo来在一个线程中调用一个函数。
你没有任何意义。你不知道,我告诉你在哪里可以找到信息。而这是我的错。更经常地成为书籍的朋友。
显然,你也不知道。为什么什么都不写?也许我不知道,这有什么大不了的?我要求提供正常的意见,他把我打发到某个地方去了。
列入黑名单,同志。
显然,你也不知道。为什么什么都不写?也许我不知道,这有什么大不了的?我要求提供正常的意见,他把我打发到某个地方。
列入黑名单,同志。
我没有把你送到任何地方,我做梦也不会想到。我不善于用自己的语言来回答这样的问题,所以我写了关于文档的内容。再说一遍,有什么可冒犯的呢? 但正如你所希望的那样,黑色,所以黑色。
这方面的文件没有什么用处
我真的不明白为什么我需要这样一个奇迹,我可以很容易地把一个函数的指针传到我需要的线程中,并在那里计算它,而不需要任何async( std::launch::deferred)。
可能偏离主题,但。
注意到微软的例子往往是写成自带文档的代码,所以他们写的是繁琐的结构,可以展开后替换成最终的值(比如,你看到代码,就能一目了然))。)
HH:在C#的例子中,不幸的是,它不是这样的,有几次我写C#的时候,相信它实际上是C++的类似物,有一些使用OOP 的倾向,结果发现它不是这样的,它根本不是C++,通常你不能 "获得 "类的字段,而不投向基类,这就是为什么我不得不使用长的不方便的结构,一般来说,解析C#的现成库是一种真正的冒险
注意,默认情况下,这两个标志是一起应用的 延迟 | 异步,这就免除了开发者的责任。我们在这里谈论的是主线程函数,是的,你可以传递给它任何东西,包括一个指向函数的指针,或者一个函数载体,作为参数。而延迟标志甚至可以暗示函数的同步执行。看,我告诉过你,我不善于用自己的话来回答这种问题)。你会被弄得一团糟。通常情况下,你把所有东西都留在默认状态,而不去管这些标志,也许这是不正确的。
HH:不幸的是,C#的例子并不是这样的,有几次我用C#写的时候,确信它实际上是C++的类似物,有一些必须使用OOP 的倾向,结果发现它并不是这样的,它根本不是C++,往往你不能 "得到 "类的字段而不投到基类,所以你必须使用冗长繁琐的结构,总之,解析C#的现成库是一种真正的冒险
嗯,这方面的文件没有什么用处
我真的不明白为什么我需要这样一个奇迹,我可以很容易地把一个函数的指针传到我需要的线程中,并在那里计算它,而不需要任何async( std::launch::deferred)。好吧,例如,你需要函数用堆栈中的当前参数来计算数值,但不是现在,也不是在这个范围内。所以,你创建了std::asinc,但问题来了,其中一个参数是一个全局变量 的引用或指针,但计算不需要这个变量的当前值,而是需要以后的值,这就是为什么创建了std::lounch::asinc和std::lounch::deferred bitmasks,你可以现在把值传给函数,以后进行计算。
因此,我可以把一个我传递给async的函数,绑定参数给它,并存储它,直到调用它的时候(或把它发送到另一个线程)。存储future还是std::bind()的输出有什么区别呢?
我想到的唯一合理的解释是--手动控制池中运行线程的数量(如果我们不相信默认的async|deferred)--例如,如果系统太忙,停止发送带有async标志的作业,发送deferred。
总的来说,我对async()的迟钝有点失望,我将创建自己的轻量级线程池,在我看来,它将会快得多。