Do the file copy in a separate
Task, see overview here:
Task Class (System.Threading.Tasks) | Microsoft Docs[
^]
Here is a simple example:
VB Task Control Example[
^]
The important part is:
Dim Tasks(1) As Task
Tasks(0) = Task.Factory.StartNew(Sub() TimedMatrixMultiplyCPU(1299))
Tasks(1) = Task.Factory.StartNew(Sub() TimedMatrixMultiplyGPU(1301))
'' Block until all tasks complete
Task.WaitAll(Tasks)
If possible read all data in memory in the main application so that you can always access the data in memory without having to use file access.
A better option would be to use a database like
PostgreSQL or SQL Server as these databases can handle simultaneous access easily and are made for Client-Server scenario's.
https://www.slant.co/topics/5950/~relational-databases[
^]