O período de tempo limite do semáforo expirou

Eu tenho um programa c # simples que copia arquivos de um compartilhamento de rede para outro. O programa apenas lançou um erro "O período de tempo limite do semáforo expirou". Eu nunca vi isso antes e estou um pouco confuso sobre o que é.

O código é bem simples: (srcPath e destPath são lidos nas configurações)

DirectoryInfo di = new DirectoryInfo(srcPath);

        try
        {

            FileInfo[] files = di.GetFiles();

            foreach (FileInfo fi in files)
            {
                if(!(fi.Name.Contains("_desc")))
                {
                    File.Copy(fi.FullName, destPath + fi.Name, true);
                }
            }
        }
        catch (Exception xx)
        {
            SendMail(xx.Message, xx.StackTrace);
        }
        finally
        {

        }

questionAnswers(3)

yourAnswerToTheQuestion