The idea of changing cache attributes to suit an application has been explored for single programs. As the popularity of reconfigurable softcore systems grows and these systems increasingly use operating systems and run multiple applications, the possibility arises of dynamic cache switching to improve performance. This paper presents the new idea of dynamic cache switching in a preemptive soft-core system. Such switching optimises the cache structure on a context switch or transition between applications. A practical solution for implementing cache switching in a reconfigurable softcore system is presented. For the design of the switching algorithm, this paper explores the mismatch of cache optimisations between applications. Focusing on the optimisation only is not enough for evaluating cache switching, as not all the applications are optimised and also the overheads in cache switching may not justify the improvement.