Как установить тайм-аут для метода File.Create на сетевом диске? - PullRequest
5 голосов
/ 24 марта 2011

У меня есть требование в моем приложении, где мне нужно создать файл на сетевом диске, но при создании файла в проге, если отключенное от сети приложение на некоторое время зависает и выдает исключение.

Есть ли способ установить время ожидания для File.Create?

Ответы [ 2 ]

2 голосов
/ 24 марта 2011

Нечто подобное можно использовать для ручного ввода тайм-аута:

var fileCreatingThread = new Thread(...);
fileCreatingThread.Start();
if (fileCreatingThread.Join(TimeSpan.FromSeconds(5)) { /* Worked correctly */}
else
{
    // time-out
}
0 голосов
/ 24 марта 2011

Я не знаю, как настроить время ожидания для File.Create (). Кажется вероятным, что это встроено в структуру или, скорее, сама операционная система.

Можете ли вы попытаться установить сетевое соединение перед созданием файла? Может пинговать цель или открыть сокет? Если это не удается, вы знаете, не пытайтесь создать файл. Если это удастся, есть большая вероятность, что создание файла будет завершено, если не возникнет проблема безопасности.

...