Symbol eXtension » invokethreadsafe

Címkék: ‘invokethreadsafe’

Szálban fut, de ablakot jelenít meg…

posted in: Felhasználói felület, Keretrendszer (Tags: , , , ) - No Comments

A SyX beépülők több helyen használhatnak szálakat működésük közben. A fejlesztő használhat “kézzel” szálakat, de az SaaS működés minden esetben szálban kerül kiszolgálásra. Ritkán, de előfordulhat, hogy a szál valamilyen felhasználói felületet is működtet. Példa erre, ha egy HTTP kérés hatására egy új számla ablak jelenik meg, amin még módosításokat lehet végezni.

Ennek a több szálas problémának a megoldására vezettük be a keretrendszerben az alábbi metódust:

InvokeThreadSafe(MethodInvoker invoker)

Az InvokeThreadSafe hívás során átadott (MethodInvoker-be beburkolt) metódus a főszálon, szinkronizáltan kerül végrehajtásra. Például egy újonnan, szálban létrehozott számla megjelenítise az alábbi módon valósítható meg:

InvokeThreadSafe(new MethodInvoker(so.Display)) //so.Display() beépített metódusa minden Entity-nek.