Wie Kann ich machen asynchronen Operationen, die von meiner eigenen mit WinRT mit IAsyncOperation-Schnittstelle?
Ich bin die Entwicklung einer metro-Anwendung, und ich möchte einige asynchrone Operationen, deren meine eigenen Klassen implementieren würden.
Habe ich gerade gefunden Beispiele Verwendung von asynchronen WinRT-Vorgängen (z.B. CreateFileAsync). Ich finde keine Herzen lag, wo jemand ist die Schaffung einer async-Methode und konsumieren es.
- Warum gehst du nicht versuchen, einfach nur die Methoden implementieren, die nach dem (eher spärlichen) Dokumentation?
- Obviouslly, die Sie nicht haben ein eingehendes wissen von dem, was beteiligt ist. Dies ist, was die Dokumentation schlägt.Auch so, danke.
- Ich verstehe es nicht. Die Dokumentation empfiehlt, das bei der SO?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jetzt können Sie es tun. Schau mal hier:
http://blogs.msdn.com/b/nativeconcurrency/archive/2011/10/27/try-it-now-use-ppl-to-produce-windows-8-asynchronous-operations.aspx
http://code.msdn.microsoft.com/Windows-8-Asynchronous-08009a0d
Asynchronen WinRT-Produktion mit C++
Verwenden create_async in C++:
Verwenden AsyncInfo.Laufen in .NET:
Ich stellte die gleiche Frage in den Microsoft-Foren und Sie gab mir zwei Antworten. Die erste war:
Als ich fragte, für den harten Weg, dies zu tun, ein anderer Kerl, jemand verantwortlich für die PPL sagte mir:
Dann gibt es keine Lösung damals. Danke an Euch alle.
Ja, siehe Ben Kuhn ' s //BUILD/talk: http://channel9.msdn.com/events/BUILD/BUILD2011/PLAT-203T Er zeigt, wie bauen eine asynchrone API.
In der aktuellen Zeit, es gibt keine gute Lösung für hohes Niveau (C++/WX) - Klassen. Jedoch wenn Sie verwenden die low-level-C++ - interfaces verwenden, können Sie die WRL::AsyncBase Klasse zu helfen, bauen Sie Ihre asynchrone Schnittstellen.
Hier ist die Dokumentation über die AsyncBase Klasse.
AsyncInfoFactory
, das ist nicht von C++/CX.Es ist verwirrend, aber es gibt einen Unterschied zwischen WinRT C++ - code und WRL. Sie können WRL verwenden code, um die ABI-Ebene direkt. WRL nicht Ausnahmen, sondern liebt Vorlagen. Die empfehlen coding style für WinRT ist nicht das gleiche wie WRL.
Ich bin nicht sicher, ob jeder kann dies tun, aber mit WRL Sie im Allgemeinen müssen implementieren eine Klasse, die erbt:
Dann können Sie
C++ WinRT ist jetzt der beste Weg für die Implementierung von WinRT-async-Methoden. Dies nutzt
co_await
undco_return
neue C++ - features für die Sprache (in den Prozess der Standardisierung). Lesen Sie die Dokumentation auf auf dieser Seite.