In a computer system that includes a processor, an operating system and one or more application programs running on said computer system, the operating system being a multi-tasking operating system that supports execution of a plurality of processes with a plurality of runnable threads, where one or more of the runnable threads is used to execute an individual application program, the system further including a memory device coupled to the processor and accessible by said operating system, a method for performing asynchronous file operations comprising:
- requesting one or more file operations from one or more of the runnable threads;
- on completion of the requested file operation, adding a completion message to a queue object stored in said memory without notifying the runnable thread that requested the file operation, the queue object implementing a multi-tasking concurrency control with a fixed number of queue threads;
- processing completion messages in the queue object with a queue thread that is different from the runnable thread which requested the file operation;
- and
- from time to time checking the queue object from the runnable threads for information on completed file operations requested by the runnable threads.