c_scan is relatively fast already. You don't need to call it every frame. Once per second is enought i think. And i don't see any solution that would work without using events. This WOULD be possible, if c_scan returns a pointer-array, not only ONE pointer.