Pessoal estou fazendo um módulo aqui que trabalha com troca de arquivos e na documentação pede para aguardar 20 segundos pelo arquivo de status xxxxxxxx.sta, porém, não sei como implementar isso em C# tava tentando algo nessa linha: mas parece que roda de forma assíncrona e não consigo pegar o resultado booleano se o arquivo existe ou não na hora que eu quero
public void ValidarArquivoStatus(int numeroSequencialDoArquivo)
{
seq = numeroSequencialDoArquivo;
aTimer = new Timer(1000);
aTimer.Elapsed += OnTimedEvent;
aTimer.AutoReset = true;
aTimer.Enabled = true;
}
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
Principal.ValidouArquivoDeStatus = false;
previousTime = e.SignalTime;
//int tempoMaximoTentativaExecucao = Convert.ToInt32(Funcoes.LeParametro(14, "7", false));
int tempoMaximoTentativaExecucao = 20;
if (ExisteArquivoDeStatus(seq))
{
//aTimer.Enabled = false;
Principal.ValidouArquivoDeStatus = true;
aTimer.Enabled = false;
}
nEventsFired++;
if ((nEventsFired == tempoMaximoTentativaExecucao) || (Principal.ValidouArquivoDeStatus == true))
{
aTimer.Enabled = false;
}
}
private static bool ExisteArquivoDeStatus(int numeroSequencialDoArquivo)
{
string arquivoStatus =
@"" + Funcoes.LeParametro(14, "6", false) + numeroSequencialDoArquivo.ToString().PadLeft(8, '0') + ".sta";
return (File.Exists(arquivoStatus) ? true : false);
}