リモートディレクトリにあるファイルを書き込む必要があります。ログアプリケーションを作成する必要があります。エラーが発生するたびに、このリモートファイルにアクセスして行を書きたいと思います。しかし、リモートディレクトリが利用できない場合、私は気にしません。私は、主なアプリケーションを実行し続けたいだけです。c#タイマー後のファイルへのアクセスをブロックする
通常、このリモートディレクトリへのアクセスには1秒かかります。 WriteLineメソッドが1秒以上かかる場合、ブロックしたい。
私はtry catchを試しましたが、アプリケーション全体が長時間ブロックされていました。私はこの試みを中断してより早く書く必要があります。
これはtxtファイルに書き込むために使用されるメインのコードです:私はこの問題を解決する方法を見つけ出すことはできません
try
{
string TargetFile = "F:\\file.txt";
using (StreamWriter sw = File.AppendText(TargetFile))
{
sw.WriteLine("LOG: an error occured\n");
sw.Close();
}
}
catch (Exception)
{
throw;
}
。たぶん別のスレッドの中で書き込み操作を実行することによって?ご協力いただきありがとうございます!
非同期方式で試しましたか?私はそれがこのようなIO操作のために素晴らしい作品だと聞きました。 https://msdn.microsoft.com/en-us/library/hh137902(v=vs.110).aspx – Hendry
[Hangfire](http://hangfire.io/)のようなバックグラウンドジョブを使用することをお勧めします。 )または[Quartz](http://www.quartz-scheduler.net/)を参照してください。ファイルが別のプロセスで使用されている場合は、ジョブのスケジュールを変更できます。 – SarangK
しかし、別のプロセスがファイルを使用する可能性は非常に低いです。そのため、リモートディレクトリにアクセスできない場合は、LOGを保存しないと大きな問題ではない場合は気にしません。その理由でメインアプリケーションが積み重なってしまわないようにするだけです。 – Emanuele