If yes, how? and would I need extra protection to avoid accessing the value of the event at the same time by different tasks?
First of all, reading value of any synchronization object (e.g. lwevent) is not task-safe and handling with those objects should be done only through blocking / setting functions.
To fulfill your request, I reply that if you want to read value of lwevent, use:
LWEVENT_STRUCT some_event;/* some initialization code here, out of scope */_mqx_uint lwe_val = some_event.VALUE;
Retrieving data ...