Windows equivalent voor cocoa NSOperation/NSOperationQueue

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een concurrent systeem dat rekening houd met prioriteiten en dependencies van operations op andere operations gebaseerd op cocoa in OSX. Heel veel werk is daar dus al gedaan door de OSX frameworks.

Nu heb ik gekeken naar concurrency frameworks voor windows en heb de Microsoft Concurrency runtime gevonden (VS2010) maar dat lijkt niet echt geschikt voor wat ik wil doen.

Zijn er voor windows frameworks die hier wel goed mee om kunnen gaan?

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Kun je iets specifieker zijn in het aangeven wel welke functies:

• Je zoekt
• De MS Concurrency runtime niet heeft
• Andere onderzochte runtimes niet hebben.

Dan kunnen we hopelijk een zinnig woord geven op je vraag.

[edit]
Kijk eens naar GNUstep. Dat is een open objective-c implementatie voor, onder andere, Windows. Daar zitten wellicht de classes in die je zoekt. Dan hoef je ook nog eens geen nieuw framework te leren.

GNUstep is natuurlijk veel meer dan een objective-c implementatie, maar het is er een onderdeel van.

[ Voor 45% gewijzigd door Gerco op 21-07-2009 16:07 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wat ik zoek staat er toch al redelijk in? Ik zoek iets dat hetzelfde kan op windows als de NSOperation API in OSX kan.

Ik heb dus verschillende 'taken' die waar mogelijk parallel uitgevoerd moeten worden welke soms afhankelijk van elkaar zijn en/of een verschillende prioriteit hebben. De taken worden dus op verschillende threads zo efficient mogelijk uitgevoerd, in de OSX implementatie wordt dat vooral native geregeld door de API.

Het meest voor de hand liggende is dus om een vergelijkbare API van microsoft ervoor te gebruiken maar die blijkt dus niet alles te bevatten wat ik nodig heb.

Na verder zoeken ben ik nu uitgekomen bij Intel's Threading Buidling Blocks wat bijna alles ondersteund wat ik nodig heb alleen het geven van prioriteiten aan verschillende taken is daar niet mogelijk.

De applicatie is vooral C++ en native onderdelen in Objective-C++ dus het is niet zozeer de switch van Objective-C naar iets anders, het zijn de implementaties van de native API's van de verschillende operating systems die geport moeten worden.

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Na het bekijken van Concurrency Runtime Deep Dive kan ik niet anders dan concluderen dat de MS Concurrency Runtime alles kan wat NSOperationQueue kan en meer.

Nu heb ik het niet in de praktijk gebruikt, maar geef het een uurtje de kans en bekijk die video. Misschien zie je dan iets wat je eerder nog niet wist dat mogelijk was. Het is overigens wel een flinke berg complexer en lastiger dan NSOperationQueue, dat kan ik niet ontkennen. Ik heb het idee dat je wel meer zelf moet doen.

[ Voor 16% gewijzigd door Gerco op 21-07-2009 21:27 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Gerco schreef op dinsdag 21 juli 2009 @ 20:46:
Na het bekijken van Concurrency Runtime Deep Dive kan ik niet anders dan concluderen dat de MS Concurrency Runtime alles kan wat NSOperationQueue kan en meer.

Nu heb ik het niet in de praktijk gebruikt, maar geef het een uurtje de kans en bekijk die video. Misschien zie je dan iets wat je eerder nog niet wist dat mogelijk was. Het is overigens wel een flinke berg complexer en lastiger dan NSOperationQueue, dat kan ik niet ontkennen. Ik heb het idee dat je wel meer zelf moet doen.
Thanks voor de link!
Er is nu ff iets anders tussen gekomen dus ik ga hier daarna weer mee verder en dan zal ik het bekijken. Het zou namelijk wel fijn zijn als het met de concurrency runtime kan, dat scheelt weer licentiekosten voor TBB.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het lijkt er inderdaad op dat alles wel kan maar dan moet het nog wel allemaal zelf gemaakt worden.
Voor parallellisme van je eigen work items lijkt alleen task_group (of structured_task_group) beschikbaar, deze regelt dan de verdeling van de tasks over de beschikbare threads maar houd geen rekening met dependencies dus dat moet ik dan zelf nog doen, ik had eigenlijk gehoopt dat hier wel een native/3th party library voor was ;)

Ben ik echt slecht in links zoeken of is http://msdn.microsoft.com...dd504870%28VS.100%29.aspx zo'n beetje de enige beschikbare informatie over de concurrency runtime want vooral de reference http://msdn.microsoft.com...dd492819%28VS.100%29.aspx is een beetje mager. MS heeft eigenlijk overal goede uitleg bij alleen hier schiet je er niet zoveel mee op.
Misschien moet ik gewoon wachten totdat t niet meer beta is...
Pagina: 1