MQL의 비동기 및 다중 스레드 프로그래밍 - 페이지 35

 
Andrei Novichkov :

그리고 실제로 설명서에서 플래그에 대해 읽어보지 않으시겠습니까? https://en.cppreference.com에서 그리고 stackoverflow.com에 대한 토론이 있는 예. 나는 일반적으로 이러한 정보 소스를 사용하며, 귀하에게 조언합니다.

그리고 당신이 말에 책임이 없다면 왜 대화에 개입합니까? 나는 디렉토리의 똑똑한 삼촌이 아니라 당신의 의견에 관심이있었습니다. 끼어들지 말고 들어와. 나는 당신의 지시 없이 부두를 읽을 수 있습니다. 그리고 하나의 스레드에서 함수를 호출 하려면 future/promise/async에서 이 모든 동물원이 필요하지 않습니다.

 
Vict :

그리고 당신이 말에 책임이 없다면 왜 대화에 개입합니까? 나는 디렉토리의 똑똑한 삼촌이 아니라 당신의 의견에 관심이있었습니다. 방해하지 말고 들어와. 나는 당신의 지시 없이 부두를 읽을 수 있습니다. 그리고 하나의 스레드에서 함수를 호출 하려면 future/promise/async에서 이 모든 동물원이 필요하지 않습니다.

당신은 어떤 종류의 넌센스를 가지고 있습니다. 당신은 몰라, 나는 정보를 찾을 수있는 곳을 알려 줬어. 그리고 그는 유죄였습니다. 책과 더 자주 친구가 되십시오.
 
Andrei Novichkov :
당신은 어떤 종류의 넌센스를 가지고 있습니다. 당신은 몰라, 나는 정보를 찾을 수있는 곳을 알려 줬어. 그리고 그는 유죄였습니다. 책과 더 자주 친구가 됩니다.

분명히 당신은 자신을 모릅니다. 왜 아무 것도 쓰지 않습니까? 그게 뭐가 잘못됐는지 모를 수도 있죠? 정상적인 의견을 물었더니 답장으로 저를 어딘가로 보냈습니다.

블랙리스트입니다, 동지.

 
Vict :

분명히 당신은 자신을 모릅니다. 왜 아무 것도 쓰지 않습니까? 그게 뭐가 잘못됐는지 모를 수도 있죠? 정상적인 의견을 물었더니 답장으로 저를 어딘가로 보냈습니다.

블랙리스트입니다, 동지.

어디에도 보내지 않았어, 내 생각에도 없었어. 내 말대로 나는 그런 질문에 나쁘게 대답하기 때문에 문서에 대해 썼습니다. 다시 말하지만, 화를 낼 것이 무엇입니까? 그러나 원하는 대로 검은색으로 검은색으로.
 
Andrei Novichkov :
어디에도 보내지 않았어, 내 생각에도 없었어. 내 말대로 나는 그런 질문에 나쁘게 대답하기 때문에 문서에 대해 썼습니다. 다시 말하지만, 화를 낼 것이 무엇입니까? 그러나 원하는 대로 검은색으로 검은색으로.

글쎄, 이것에 대한 문서는별로 도움이되지 않습니다.

표준::실행::지연 작업은 결과가 처음으로 요청될 때 호출 스레드에서 실행됩니다(지연 평가).
그런 기적이 필요한 이유 - 정말 이해가 되지 않습니다. 필요한 스레드에 함수 포인터를 쉽게 전달할 수 있고 async( std::launch::deferred) 없이 계산할 수 있습니다.
 
Vict :

그런 기적이 필요한 이유 - 정말 이해가 되지 않습니다. 필요한 스레드에 함수 포인터를 쉽게 전달할 수 있고 async( std::launch::deferred) 없이 계산할 수 있습니다.

주제와 다를 수 있지만:

나는 종종 Microsoft의 예제가 자체 문서화된 코드의 형태로 작성된다는 사실을 알게 되었습니다. 이것이 최종 값으로 열고 바꿀 수 있는 성가신 구성을 작성하는 이유입니다(예: 코드를 보고 모든 것을 이해합니다). )) )

추신: 불행히도 C# 예제에서 모든 것이 잘못되었습니다. 저는 이것이 사실 OOP의 필수 사용에 대한 특정 성향을 가진 C ++의 유사체라는 확신을 가지고 C#으로 여러 번 썼습니다. 모든 것이 완전히 잘못되었습니다. C++가 아닙니다. 기본 클래스로 캐스팅하지 않고는 클래스 필드에 "가져오는" 것이 종종 불가능합니다. 그렇기 때문에 일반적으로 기성품 라이브러리를 구문 분석하는 길고 복잡한 구성을 사용해야 합니다. C #은 또 다른 모험입니다!

 

이 두 플래그는 기본적으로 deferred | async는 개발자의 책임을 제거합니다. 여기에서 우리는 스레드의 주요 기능에 대해 이야기하고 있습니다. 글쎄요. 예, 인수를 포함하여 무엇이든 전달할 수 있습니다. 및 함수 포인터 또는 펑터. 그리고 지연 플래그는 일반적으로 이 함수의 동기 실행을 의미할 수 있습니다. 글쎄, 나는 내 자신의 말로 그런 질문에 대답하는 것이 서툴다는 것을 말하는 것입니다) Porridge가 나타납니다. 일반적으로 기본적으로 모든 것을 그대로 두고 이러한 플래그에 신경 쓰지 않습니다. 아마도 이것이 옳지 않을 수 있습니다.

 
Igor Makanu :

추신: 불행히도 C# 예제에서 모든 것이 잘못되었습니다. 저는 이것이 사실 OOP의 필수 사용에 대한 특정 성향을 가진 C ++의 유사체라는 확신을 가지고 C#으로 여러 번 썼습니다. 모든 것이 완전히 잘못되었습니다. C++가 아닙니다. 기본 클래스로 캐스팅하지 않고는 클래스 필드에 "가져오는" 것이 종종 불가능합니다. 그렇기 때문에 일반적으로 기성품 라이브러리를 구문 분석하는 길고 복잡한 구성을 사용해야 합니다. C #은 또 다른 모험입니다!

글쎄요, MS는 Spurs에 대한 아주 좋은 문서를 가지고 있습니다. 모든 것이 자세히 설명되어 있습니다. 불평하는 것은 죄다
 
Vict :

글쎄, 이것에 대한 문서는별로 도움이되지 않습니다.

그런 기적이 필요한 이유 - 정말 이해가 되지 않습니다. 필요한 스레드에 함수 포인터를 쉽게 전달할 수 있고 async( std::launch::deferred) 없이 계산할 수 있습니다.
예를 들어 스택의 현재 매개변수로 값을 계산하는 함수가 필요하지만 지금은 아니고 이 범위에 속하지 않습니다. 따라서 std::asinc를 생성하지만 여기에 매복이 있습니다. 매개변수 중 하나는 전역 변수 에 대한 참조 또는 포인터이지만 계산에서는 이 변수의 현재 값이 아니라 나중에, 그것이 바로 std::lounch::asinc 및 std::lounch:: 지연된 마스크이며 지금 함수에 값을 전달하고 나중에 계산을 수행할 기회가 주어집니다.
 
Vladimir Simakov :
예를 들어 스택의 현재 매개변수로 값을 계산하는 함수가 필요하지만 지금은 아니고 이 범위에 속하지 않습니다. 따라서 std::asinc를 생성하지만 여기에 매복이 있습니다. 매개변수 중 하나는 전역 변수 에 대한 참조 또는 포인터이지만 계산에서는 이 변수의 현재 값이 아니라 나중에, 그것이 바로 std::lounch::asinc 및 std::lounch:: 지연된 마스크이며 지금 함수에 값을 전달하고 나중에 계산을 수행할 기회가 주어집니다.

글쎄, 이런 식으로 나는 내가 async에 전달한 함수를 가져갈 수 있고, 그것에 인수를 바인딩하고, 호출할 시간(또는 다른 스레드로 보낼 때)이 될 때까지 저장할 수 있습니다. 차이점은 무엇입니까 - std::bind()에서 미래 또는 배기를 저장합니까?

내 마음에 떠오르는 유일한 합리적인 설명은 풀에서 실행 중인 스레드 수를 수동으로 제어하는 것입니다(기본 async | deferred를 신뢰하지 않는 경우). 예를 들어, 시스템에 과부하가 걸리면 작업 전송을 중지합니다. async 플래그를 사용하여 deferred를 보냅니다.

글쎄, 일반적으로 나는 async()의 느림에 다소 실망했습니다. 가벼운 스레드 풀을 구성할 시간이 있을 것입니다. 훨씬 더 빠를 것 같습니다.