2016-04-29 40 views
0

OpenFileDialogを開くボタンがあります。アプリケーションをコンパイルするときは、初めて実行し、ボタンを押してファイルを選択してから、受け入れダイアログボタンを押すと、リストボックスに選択したファイルを追加するまで約1分間待機します。C# - OpenFileDialogが初めてOKを押すと遅すぎる

アプリケーションを終了して再起動して上記と同じことをすると、すべて正常に動作します。それ以来、常に高速に動作します。私がコンパイルしたあと遅すぎると実行したのは初めてのことです。

コード抽出は以下のとおりです。ダイアログで何が間違っているのでしょうか?なぜそれは最初にゆっくりと動くのですか?ありがとうございました。

void ButtonAddClick(object sender, EventArgs e) 
    { 
     this.openFileDialog.FileName = String.Empty; 
     this.openFileDialog.InitialDirectory = this.openPath; 
     if (this.openFileDialog.ShowDialog() == DialogResult.OK) 
     { 
      foreach (string file in this.openFileDialog.FileNames) 
      { 
       if (!File.Exists(file)) 
       { 
        this.ShowStatus("Error occured selecting file " + Path.GetFileName(file)); 
       } 
       else if (!this.listBoxFiles.Items.Contains(file)) 
       { 
        this.listBoxFiles.Items.Insert(0, file); 
       } 
       else{ 
        this.ShowStatus("File " + Path.GetFileName(file) + " already selected"); 
       } 
      } 
     } 

     if (this.listBoxFiles.Items.Count > 0) 
     { 
      this.openPath = Path.GetDirectoryName(this.listBoxFiles.Items[0].ToString()); 
      this.listBoxFiles.Enabled = true; 
      this.buttonClear.Enabled = true; 
      this.buttonFolder.Enabled = true; 
     } 
    } 
+0

あなたはVSでアプリケーションを実行していますか、デバッグしていますか?同じ問題が存在するかどうかを確認するために、コンパイルを試してからリリースフォルダからアプリケーションを手動で実行しましたか? – Mikanikal

+0

どこから実行しても問題ありませんし、デバッグモードでもリリースモードでも問題ありません。私はSharpDevelopを使用します。私はopenfilesdialogだけを追加する必要があります、最初の時間が遅く、他のダイアログが正常にrunnigです。 – linuxoid

+0

1分の遅延の間にデバッガに侵入し、スレッドが何をしているかを確認します。 –

答えて

0

最初の初期化時にこの問題が発生している場合は、これを修正するための提案を以下に示します。

VSデバッグの場合、Visual Studio IDEで、[ツール]> [オプション]> [デバッグ]に移動します。 [記号]という名前の設定ページを検索します。クリックすると、ページの内容が読み込まれます。右側のパネルで[Microsoft Symbol Servers]チェックボックスがオンの場合は、チェックを外して[OK]を押して設定を保存します。コンパイルされたexeを実行しているときに、問題が解決しない場合は、ご使​​用のPCでクリーンアップ操作を実行することをお勧めします。また、すべてのタイムリーなVSアップデートがVSに組み込まれていることを確認してください。もし私たちが何か他のものを見つけられないなら、これが役に立ったら教えてください。

+0

Mukesh、SharpDevelopを使用しています – linuxoid

+0

SharpDevelopについては言及していませんでした。 SharDevelopのSymbol設定についてはあまり手掛かりがありません。とにかくいつでもPCでクリーンアップ操作を試してみて助けてくれるかどうかを確認することができます –

0

OpenFileDialogウィンドウを表示する前にDirectory.GetFiles(folderPath);に電話してみてください。これにより、現在の方法で初めてOpenFileDialogを実行した後に発生する同じキャッシングがトリガーされる可能性があります。

+0

ドミトリー、私はそれを試みました、いや、助けにはならなかった。まだ遅いです。 – linuxoid

関連する問題