コード例 #1
0
ファイル: Core.cs プロジェクト: robertlarue/MassQuery
        static bool FileExistsTimeout(string path, int millisecondsTimeout)
        {
            try
            {
                FileExistsDelegate callback = new FileExistsDelegate(File.Exists);
                IAsyncResult       result   = callback.BeginInvoke(path, null, null);

                if (result.AsyncWaitHandle.WaitOne(millisecondsTimeout, false))
                {
                    return(callback.EndInvoke(result));
                }
                else
                {
                    callback.EndInvoke(result);  // Needed to terminate thread?

                    return(false);
                }
            }

            catch (Exception ex)
            {
                Debug.WriteLine("Error in finding file: " + path + "\r\n" + ex.Message);
                return(false);
            }
        }
コード例 #2
0
ファイル: PackageAPI.cs プロジェクト: dream1986/cameyo
 static bool FileExistsTimeout(string path, int millisecondsTimeout)
 {
     try
     {
         FileExistsDelegate callback = new FileExistsDelegate(File.Exists);
         IAsyncResult result = callback.BeginInvoke(path, null, null);
         if (result.AsyncWaitHandle.WaitOne(millisecondsTimeout, false))
         {
             return callback.EndInvoke(result);
         }
         else
         {
             //callback.EndInvoke(result);   // Problem: this seems to make the current thread block for response!
             return false;
         }
     }
     catch (Exception)
     {
         return false;
     }
 }
コード例 #3
0
 /// <summary>
 /// Конструктор для случая "Save"
 /// </summary>
 public SaveLevelCommand(string fileName, GameLevel level)
 {
     _fileName           = fileName;
     _level              = level;
     _fileExistsCallback = null;
 }
コード例 #4
0
 /// <summary>
 /// Конструктор для случая "Save As"
 /// </summary>
 /// <param name="fileName">Полное имя файла для сохранения.</param>
 /// <param name="level">Уровень.</param>
 /// <param name="fileExitsCallback">Функция обратного вызова для случая, если один из файлов уже существует.</param>
 public SaveLevelCommand(string fileName, GameLevel level, FileExistsDelegate fileExistsCallback)
 {
     _fileName           = fileName;
     _level              = level;
     _fileExistsCallback = fileExistsCallback;
 }