I'm not 100% clear on what you're wanting to do, but it sounds like your best bet is to wrap the methods of the List class to perform the logic you need.
In other words, create a new class and create an internal List class and implement the necessary methods you need by calling the internal List.
--------------------------------
Static does not prevent multiple executions, just means its not tied to a specific instance of a class. You'll want to read
this[
^].
You'll want to execute a method on the threadpool, but just have a critical section around a flag indicating that it is executing. You'll then check that every time you get a new message, if its not set execute the thread, otherwise sit tight and let the thread handle it.
Just make sure that if your thread fails or throws an exception that you unset that flag, so it won't clog up your system. Take care.