1

私は次のコードを持っています。最初のストリームからファイルから読み取り、コンテンツにいくつかの解釈を行い、それらを2番目のファイルに書き込んでいます。大きなファイルがあるときにGUIが含まれるという問題に直面していますWPFがくっついています。読み取りと書き込みのアクションを入れようとしました:

 Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
                {
                    // Here
                });

これは次のコードで:

using (StreamReader streamReader = new StreamReader(File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
using (StreamWriter streamWriter = new StreamWriter(File.Open("Compressed_" + splitFilePath[splitFilePath.Length - 1], FileMode.Create, FileAccess.Write, FileShare.ReadWrite)))
{
    // Here are the interpretations of the code
    while ((dataSize = streamReader.ReadBlock(buffer, 0, BufferSize)) > 0)
    {
        streamWriter.Write(.....);
    }
}

誰でも私を助けることができますか?? ありがとう

4

2 に答える 2

1

BeginInvoke を使用しても、コードは同じ UI ディスパッチャー スレッドで実行されるため、GUI がフリーズすることを理解する必要があります。タスクを使用してロジックをバックグラウンドで実行してみてください。

于 2013-08-14T17:06:21.733 に答える