Domanda

Ho guardato attraverso il codice di cronometro e nota che sta utilizzando un assemblaggio chiamato 'stact.dll'.Non sembrano esserci molte informazioni su questo.Sembra essere una biblioteca per costruire applicazioni concorrenti utilizzando attori e "canali".Trovo che il codice di alto livello un po 'difficile da seguire, ma sono interessato a scoprire di più su questo stile di programmazione.Qualcuno ha avuto qualche esperienza con questa biblioteca?Come sei andato a imparare a usarlo?

È stato utile?

Soluzione

La categoria è attualmente utilizzata solo internamente al momento. È qualcosa che abbiamo costruito dalle nostre esperienze scrivendo software concorrente e per lo più il lavoro di Chris Patterson ( https:// github. com / phatboyg / categoria ).

L'esempio più semplice che posso pensare che sia fuori vi è da CashBox. https://github.com/cashbox/cashbox /blob/v1.0/src/cashbox/engines/filestorageengine.cs

Hai un canale che passa i messaggi. Su un'estremità di quel canale si imposta le sottoscrizioni dei messaggi. La linea 72 Costruisce gli abbonamenti, impostando un'azione del gestore per ciascun tipo di messaggio che si aspetta. Il ManicoLotonFiber (_FIBER) sta costringendo tutti i messaggi da elaborare sullo stesso thread e sono accodati come vengono ricevuti. Ci sono altre chiamate a maniglie e si spera che l'API sia piuttosto scoperta.

Ora questo esempio nasconde tutti i canali e le fibre in una classe, potresti avere canali che collegano classi diverse in cui è necessario passare un riferimento al canale in questione.

La categoria è davvero una biblioteca attore. Non ci sono grandi esempi, al momento, di usarlo per scrivere attori. Spero che aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top