My application is drawing graphics objects on the map(as simple as adding IElement to GraphicsContainer). When I create graphics elements and add them to GraphicsContainer in BackgroundWorker DoWork method, ActiveView Refresh method does not show any added graphics. Are there any triks to take into account when drawing on the map in different thread? (if at all possible) Any help will be greatly appreciated.
ArcObjects are primarily single-threaded COM components. That does not prevent you from writing multi-threaded applications, you just need to stick to certain guidelines.
See the SDK article Writing multithreaded ArcObjects code, it should provide all the information you need.