Since they are warnings, you should just ignore them. Probabaly better when you set logging on production to error only, then you won't see them.
If you want the explanation as to where they come from, see the answer below, duplicated from https://stackoverflow.com/questions/10212794/what-programming-practices-cause-tridion-to-report-that-a-session-is-used-on-ano/10489163/#10489163
The problem does not only come about when storing a session, but also when storing any TOM.NET object (Component
, Page
, etc). Each such object has an internal reference to the Session that it was created from any access to the object may have to go back to the Session to retrieve the requested information from Tridion.
Although most properties that are 'native' to the item type seem to be retrieved and kept on an instance, a call like LoadApplicationData
may (have to) reach back to the Session to access the requested data. And if this call then happens on a different thread, you'll get the warning message you mention.
I've started to look at every TOM.NET object I keep with suspicion and pre-load a lot of data I may need later when I first load the object from its Session.